答案
1.以下哪个变量的命名不正确?为什么?
(C)选项不正确,因为 Python 中的变量名不能以数字开头。
- 变量名可以包括字母、数字、下划线,但是数字不能做为开头。
- 例如:name1是合法变量名,而1name就不可以。
- 系统关键字不能做变量名使用,除了下划线以外,其它符号不能做为变量名使用
- Python的变量名是区分大小写的
2. 使用 int() 将小数转换为整数,结果是向上取整还是向下取整?有什么办法使得 int() 按照“四舍五入”的方式取整?
(上下取整:如5.5 向上取整为 6,向下取整为 5)
小数取整会采用比较暴力的截断方式,即向下取整。但那是对于正数来说……对于负数则刚好相反 —— 是向上取整。
所以倒不如说int()是向0取整,无论整数还是负数,都朝着0的方向进行取整
int(a+0.5) 即可实现四舍五入,如:
- a= 5.4 “四舍五入”结果为:5,int(5.4+0.5) == 5
- a= 5.6 “四舍五入”结果为:6,int(5.6+0.5) == 6
还有一个种四舍五入的方式为round(a),但是该方式的四舍五入与int(a+0.5)在a为负数的时候存在区别,
- 假设 a= -5.7
- round(a)的结果为 -6
- int(a+0.5)的结果为 -5
python中的取整函数总结
3.不写程序,直接说出 not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9 的答案
优先级顺序: not > and > or
我们按照优先级给它们加上括号:
== (not 1) or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8 and 9)
== 0 or 0 or 4 or 6 or 9
== 4
python中存在短路逻辑,如3 and 4 == 4,而 3 or 4 == 3。具体规则如下:
- 表达式从左至右运算,若 or 的左侧逻辑值为 True ,则短路 or 后所有的表达式(不管是 and 还是 or),直接输出 or左侧表达式 。若 or 的左侧逻辑值为 False ,则输出or右侧的表达式,不论其后表达式是真是假,整个表达式结果即为其后表达式的结果
- 表达式从左至右运算,若 and 的左侧逻辑值为 False ,则短路其后所有 and 表达式,直到有 or 出现,输出 and左侧表达式到 or 的左侧,参与接下来的逻辑运算。若 and 的左侧逻辑值为True,则输出其后的表达式,不论其后表达式是真是假,整个表达式结果即为其后表达式的结果
- 若 or 的左侧为 False ,或者 and 的左侧为 True 则不能使用短路逻辑。
4.请写一个程序打印出 0~100 所有的奇数
i = 0
while i <= 100:
if i % 2 != 0:
print(i, end=' ')
i += 1
else:
i += 1
5.输出一个字符串,将其中的每个字符单行输出,如
str1 = input("请输入一个字符串")
for s in str1:
print(s)
6.有 x ,y,z,请问如何快速将三个变量的值互相交换?如x=1,y=2,z=3最后结果为x=3,y=2,z=1
x, y, z = z, y, x
7.按照 100 分制,90 分以上成绩为 A,80 到 90 为 B,60 到 80 为 C,60 以下为 D,写一个程序,当用户输入分数,自动转换为ABCD 的形式打印。
score = int(input('请输入一个分数:'))
if 80 > score >= 60:
print('C')
elif 90 > score >= 80:
print('B')
elif 60 > score >= 0:
print('D')
elif 100 >= score >= 90:
print('A')
else:
print('输入错误!')
8. 写一个程序实现以下截图功能:
temp = input('请输入一个整数:')
number = int(temp)
while number:
i = number - 1
while i:
print(' ', end = '')
i = i - 1
j = number
while j:
print('*', end = '')
j = j - 1
print()
number = number - 1
9.写一个程序,计算用户输入的内容中有几个数字?几个英文字母?
content = input('请输入内容:计算十进制小数个数和字母个数 ')
num = 0
zimu = 0
for n in content:
if n.isdecimal():
num += 1
elif n.isalpha():
zimu += 1
else:
pass
print('数字个数 ', num)
print('字母个数 ', zimu)
10. 写一个程序,判断给定年份是否为闰年
1582年以来的置闰规则:
- 普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。
- 世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)。
temp = input('请输入一个年份:')
while not temp.isdigit():
temp = input("抱歉,您的输入有误,请输入一个整数:")
year = int(temp)
if year/400 == int(year/400):
print(temp + ' 是闰年!')
else:
if (year/4 == int(year/4)) and (year/100 != int(year/100)):
print(temp + ' 是闰年!')
else:
print(temp + ' 不是闰年!')