第一章 Python概述
1. 在Python中,以下标识符合法的是
A. _B. 3CC. it’sB. str
答案:A
标识符的第一个字符必须是字母,下划线(_);其后的字符可以是字母、下划线或数字。一些特殊的名称,作为python语言的保留关键字,不能作为标识符以双下划线开始和结束的名称通常具有特殊的含义。例如__init__为类的构造函数,一般应避免使用
B:以数字开头,错误 C:使用了',不是字母、下划线或数字 D:str是保留关键字
3. 在下列Python语句中非法的是
A. x = y =1B. x = (y =1)C. x,y = y,xB. x=1;y=1
答案:B,C
7. 为了给整型变量x,y,z赋初值10,下面Python赋值语句正确的是
A. xyz=10B. x=10 y=10 z=10C. x=y=z=10B. x=10,y=10,z=10
答案:C
分号;用于在一行书写多个语句python支持链式赋值
A:赋值对象是xyz B:分号;用于在一行书写多个语句,而不是' '(即空格) D:分号;用于在一行书写多个语句,而不是,
8. 为了给整型变量x,y,z赋初值5,下面Python赋值语句正确的是
A. x=5;y=5;z=5B. xyz=5C. x,y,z=10B. x=10,y=10,z=10
答案:A
Pytho能支持序列解包赋值,但是变量的个数必须与序列的元素个数一致,否则会报错
B:赋值对象是xyz C:序列解包赋值,变量的个数必须与序列的元素个数一致,否则会报错 D:分号;用于在一行书写多个语句,而不是,
思考题:9
9.下列Python语句的输出结果是
def f():pass
print(type(f()))
结果:<class 'NoneType'>
NoneType数据类型包含唯一值None,主要用于表示空值,如没有返回值的函数的结果
上机实践:2~6
2. 编写程序,输入本金、年利率和年数,计算复利(结果保留两位小数)
money = int(input("请输入本金:"))
rate = float(input("请输入年利率:"))
years = int(input("请输入年数:"))
amount = money*((1+rate/100)**years)
print(str.format("本金利率和为:{0:2.2f}",amount))
运行:
请输入本金:1000
请输入年利率:6.6
请输入年数:10
本金利率和为:1894.84
3. 编写程序,输入球的半径,计算球的表面积和体积(结果保留两位小数)
import math
r = float(input("请输入球的半径:"))
area = 4 * math.pi * r**2
volume = 4/3*math.pi*r**3
print(str.format("球的表面积为:{0:2.2f},体积为:{1:2.2f}",area,volume))
运行:
请输入球的半径:666
球的表面积为:5573889.08,体积为:1237403376.70
4. 编写程序,声明函数getValue(b,r,n),根据本金b,年利率r和年数n计算最终收益v
money = int(input("请输入本金:"))
rate = float(input("请输入年利率(<1):"))
years = int(input("请输入年数:"))
def getValue(b,r,n):
return b*(1+r)**n
print(str.format("本金利率和为:{0:2.2f}",getValue(money,rate,years)))
运行:
请输入本金:10000
请输入年利率(<1):0.6
请输入年数:6
本金利率和为:167772.16
5. 编写程序,求解一元二次方程x2-10x+16=0
from math import sqrt
x = (10+sqrt(10*10-4*16))/2
y = (10-sqrt(10*10-4*16))/2
print(str.format("x*x-10*x+16=0的解为:{0:2.2f},{1:2.2f}",x,y))
运行:
x*x-10*x+16=0的解为:8.00,2.00
6. 编写程序,提示输入姓名和出生年份,输出姓名和年龄
import datetime
sName = str(input("请输入您的姓名:"))
birthday = int(input("请输入您的出生年份:"))
age = datetime.date.today().year - birthday
print("您好!{0}。您{1}岁。".format(sName,age))
运行:
请输入您的姓名:zgh
请输入您的出生年份:1999
您好!zgh。您20岁。
案例研究:使用Pillow库处理图像文件
https://blog.csdn.net/Zhangguohao666/article/details/102060722
通过此案例,进一步了解Python的基本概念:模块、对象、方法和函数的使用
第三章 程序流程控制
几个例题
一:编程判断某一年是否为闰年
闰年:年份能被4整除但不能被100整除,或者可以被400整除。 口诀:四年一闰,百年不闰,四百必闰
代码一:
y = int(input("请输入要判断的年份:"))
if((y % 4 == 0 and y % 100 != 0) or y % 400 == 0):
print("是闰年")
else:
print("不是闰年")
代码二(使用calendar模块的isleap()函数来判断):
from calendar import isleap
y = int(input("请输入要判断的年份:"))
if(isleap(y)):print("闰年")
else:print("不是闰年")
二:利用嵌套循环打印九九乘法表
九九乘法表:
for i in range(1,10):
s = ""
for j in range(1,10):
s += str.format("%d * %d = %02d " %(i, j, i*j))
print(s)
下三角:
for i in range(1,10):
s = ""
for j in range(1,i+1):
s += str.format("%d * %d = %02d " %(i, j, i*j))
print(s)
上三角:
for i in range(1,10):
s = ""
for k in range(1,i):
s += " "
for j in range(i,10):
s += str.format("%d * %d = %02d " %(i, j, i*j))
print(s)
三:enumerate()函数和下标元素循环示例
Python语言中的for循环直接迭代对象集合中的元素,如果需要在循环中使用索引下标访问集合元素,则可以使用内置的enumerate()函数
enumerate()函数用于将一个可遍历的数据对象(例如列表、元组或字符串)组合为一个索引序列,并返回一个可迭代对象,故在for循环当中可直接迭代下标和元素
seasons = ["Spring","Summer","Autumn","Winter"]
for i,s in enumerate(seasons,start=1): #start默认从0开始
print("第{0}个季节:{1}".format(i,s))
运行:
第1个季节:Spring
第2个季节:Summer
第3个季节:Autumn
第4个季节:Winter
四:zip()函数和并行循环示例
如果需要并行遍历多个可迭代对象,则可以使用Python的内置函数zip()
zip()函数将多个可迭代对象中对应的元素打包成一个个元组,然后返回一个可迭代对象。如果元素的个数不一致,则返回列表的长度与最短的对象相同。
利用运算符*还可以实现将元组解压为列表
evens = [0,2,4,6,8]
odds = [1,3,5,7,9]
for e,o in zip(evens,odds):
print("{0} * {1} = {2}".format(e,o,e*o))
运行:
0 * 1 = 0
2 * 3 = 6
4 * 5 = 20
6 * 7 = 42
8 * 9 = 72
五:map()函数和循环示例
如果需要遍历可迭代对象,并使用指定函数处理对应的元素,则可以使用Python的内置函数map()
map(func,seq1[,seq2,...])
func作用于seq中的每一个元素,并将所有的调用结果作为可迭代对象返回。如果func为None,该函数的作用等同于zip()函数
计算绝对值:
>>> list(map(abs, [-1, 0, 7, -8]))
[1, 0, 7, 8]
计算乘幂:
>>> list(map(pow, range(5), range(5)))
[1, 1, 4, 27, 256]
计算ASCII码:
>>> list(map(ord, 'zgh'))
[122, 103, 104]
字符串拼接(使用了匿名函数lambda):
>>> list(map(lambda x, y: x+y, 'zgh', '666'))
['z6', 'g6', 'h6']
选择题:1、2、3
1. 下面的Python循环体的执行次数与其他不同的是
A.
i = 0
while(i <= 10):
print(i)
i = i + 1
B.
i = 10
while(i > 0):
print(i)
i = i - 1
C.
for i in range(10):
print(i)
D.
for i in range(10,0,-1):
print(i)
答案:A
A:[0,10] 执行11次 B:[10,1] 执行10次 C:[0,9) 执行10次 D:[10,0) 执行10次
2. 执行下列Python语句将产生的结果是
x = 2; y = 2.0
if(x == y): print("Equal")
else: print("Not Equal")
A. EqualB. Not EqualC. 编译错误D. 运行时错误
答案:A
Python中的自动类型转换:
自动类型转换注意针对Number数据类型来说的当2个不同类型的数据进行运算的时候,默认向更高精度转换数据类型精度从低到高:bool int float complex关于bool类型的两个值:True 转化成整型是1;False 转化成整型是0
int类型的2转化为float类型的2.0
3. 执行下列Python语句将产生的结果是
i= 1
if(i): print(True)
else: print(False)
A. 输出1B. 输出TrueC. 输出FalseD. 编译错误
答案:B
在Python中,条件表达式最后被评价为bool值True或False。
如果表达式的结果为数值类型(0),空字符串(""),空元组(()),空列表([]),空字典({}),其bool值为False,否则其bool值为True
填空题:6
6. 要使语句for i in range(_,-4,-2)循环执行15次,则循环变量i的初值应当为
答案:26或者25
一开始我给的答案是26,经过评论区 亻的提醒:
>>> a = 0
>>> for i in range(26, -4, -2): a+=1
>>> print(a)
15
>>> a = 0
>>> for i in range(25, -4, -2): a+=1
>>> print(a)
15
这种题目有一个规律:for i in range(x,y,z): 若循环中没有break或者continue语句, 执行次数的绝对值:result = (x-y)÷z
但实际上没有这么简单:
如果步长为 -1或者1,那么答案只有一个如果步长为 -2或者2,那么答案有两个如果步长为 -3或者3,那么答案有三个…
通过公式算出 x 之后,
如果步长为2,还要计算 (x ± 1) - z × (result-1) 的值,然后再经过琐碎的判断即可如果步长为3,还要计算 (x ± 2) - z × (result-1) 的值,……
虽然看着麻烦,但实际上是很好理解的
思考题:3~6
3. 阅读下面的Python程序,请问程序的功能是什么?
from math import sqrt
n = 0
for m in range(101,201,2):
k = int(sqrt(m))
for i in range(2, k+2):
if m % i == 0:break
if i == k + 1:
if n % 10 == 0:print()
print('%d' % m,end = " ")
n += 1
输出101到200之间的素数 每行输出10个,多余换行
运行:
101 103 107 109 113 127 131 137 139 149
151 157 163 167 173 179 181 191 193 197
199
素数(质数)是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。
4. 阅读下面的Python程序,请问输出的结果使什么?
n = int(input("请输入图形的行数:"))
for i in range(0, n):
for j in range(0, 10 - i):print(" ", end=" ")
for k in range(0, 2 * i + 1):print(" * ", end=" ")
print("\n")
输出的是一个金字塔
运行:
请输入图形的行数:4
*
* * *
* * * * *
* * * * * * *
5. 阅读下面的Python程序,请问输出的结果使什么?程序的功能是什么?
for i in range(100,1000):
n1 = i // 100
n2 = i // 10 % 10
n3 = i % 10
if(pow(n1, 3) + pow(n2, 3) + pow(n3, 3) == i):print(i, end=" ")
输出三位数中所有的水仙花数
运行:
153 370 371 407
水仙花数 是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身
6. 阅读下面的Python程序,请问输出的结果使什么?程序的功能是什么?
for n in range(1,1001):
total = 0; factors = []
for i in range(1, n):
if(n % i == 0):
factors.append(i)
total += i
if(total == n):print("{0} : {1}".format(n, factors))
输出1到1000的所有完数,并输出每个完数的所有因子
运行:
6 : [1, 2, 3]
28 : [1, 2, 4, 7, 14]
496 : [1, 2, 4, 8, 16, 31, 62, 124, 248]
完数 所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有