|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 Darker.R 于 2020-11-13 21:02 编辑
初学python,请问for循环这块代码,为什么不加第一次接收用户输入不在str1,之后不论输入什么都会执行
- print('请输入评分等级:', end='')
- temp = True
- str1 = 'ABCDF '
- while True:
- grade = input()
- length1 = len(grade)
- if grade.isspace() or length1 == 0:
- print('您的输入为空(或空格),请重新输入:', end='')
- else:
-
- for each in grade:
- if each not in str1:
- temp = False
-
- if temp == False:
- print('您的输入有误,请重新输入:', end='')
- else:
-
- space = grade.replace(' ','')
- length2 = len(space)
- str2 = ' '.join(space)
- if grade == str2:
-
- num = grade.count('A')
- score = num / length2
- result = round(score,2)
-
- print(result)
- break
-
- else:
- print('您的输入格式有误,请重新输入:', end='')
复制代码
======for in 循环加else的用法,可以看下面例子===========
for i in (0,1,2,3,4,5):
if i >10:
break
else:
pass
else:
print('--->else')
执行结果:--->else #没跳出循环,所以执行for in 缩进对齐的else
=======例子2=============
for i in (0,1,2,3,4,5):
if i >1:
break
else:
pass
else:
print('--->else')
执行结果:啥也没有 #跳出了for in循环,所以不执行for in 缩进对齐的else
=============你说的第一次接收用户输入不在str1,之后不论输入什么都会执行======
原因很简单啊,你后面并没有input()函数接受用户输入的信息
|
|