python2学习测试题答案

答案

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为负数的时候存在区别,

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 + ' 不是闰年!')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值