一部分练习题
1、使用while循环输入 1 2 3 4 5 6 8 9 10
1 a=1 2 while a<=10: 3 if a==7: 4 a+=1 5 continue 6 print(a) 7 a+=1
2、求1-100的所有数的和(列表和循环两种方式)
1 print(sum((list(range(1,101)))))
1 a=1 2 b=0 3 while a<=100: 4 b=a+b 5 a+=1 6 print(b)
3、输出 1-100 内的所有奇数(列表和循环两种方式)
1 for a in range(1,101,2): 2 print(a)
1 a=1 2 while a<=100: 3 if a%2==1: 4 print(a) 5 a+=1 6 a+=1
4、输出 1-100 内的所有偶数(列表和循环两种方式)
1 for a in range(2,101,2): 2 print(a)
1 a=1 2 while a<=100: 3 if a%2==0: 4 print(a) 5 a+=1 6 a+=1
5、求1-2+3-4+5 ... 99的所有数的和
1 a=1 2 b=0 3 while a<=99: 4 if a%2==1: 5 b=a+b 6 a+=1 7 if a%2==0: 8 b=b-a 9 a+=1 10 print(b)
上面的输出是-50,范例是50,我用range验证了一下,确实是我错的,但是不知道错在哪儿 😞(没有解决的问题)
print(list(range(1,100,2))) print(sum(list(range(1,100,2))))#奇数和2500 print(list(range(2,100,2))) print(sum(list(range(2,100,2))))#偶数和2450
明白了怎么回事,是因为A+=1放重复了,造成了IF语句一直在走
a=1
b=0
while a<=99:
if a%2==1:
b=a+b
if a%2==0:
b=b-a
a+=1
print(a,b)
还有一种range方式的判断,看人家写的,觉得很好呀,关键也是得50
mub=0 for a in range(1,100): if a%2==1: mub=mub+a if a%2==0: mub=mub-a print(mub)
6、用户登陆(三次机会重试)
username='abc' password='aabbcc' wrongtime=0 inputname=input('请输入用户名:') inputpassword=input('请输入密码:') while True: if inputname==username and inputpassword==password: print('welcome'.capitalize().center(20,'*')) break if inputname!=username or inputpassword!=password: wrongtime+=1 if wrongtime==3: print('输入三次错误,退出') break print('用户名或密码错误,请重新输入') inputname=input('请输入用户名:') inputpassword=input('请输入密码:')
修改一下,看了范例,用个continue可以简化
username='abc' password='aabbcc' wrongtime=0 while True: inputname=input('请输入用户名:') inputpassword=input('请输入密码:') if inputname==username and inputpassword==password: print('welcome'.capitalize().center(20,'*')) break if inputname!=username or inputpassword!=password: wrongtime+=1 if wrongtime==3: print('输入三次错误,退出') break print('用户名或密码错误,请重新输入') continue