标签:总结 2021.3 循环体 else 学习 while 循环 print 100
一、if
1.if多分支:根据不同的条件做不一样的事情,但是要求条件之间存在:一个条件成立以后,其他条件必须不能成立
-
语法:
if 条件语句:
代码段1
elif 条件语句:
代码段2
…
else:
代码段n
例如:根据分数对成绩进行评级:A(90100)、B(8089)、C(60~79)、D(60分一下),分数是有效的百分制
score = 98 if score > 90: print('A') elif score >80: print('B') elif score >60: print('C') else: print('D')
-
当条件之间没有关系时:
-
语法:
if 条件语句:
代码段1
if 条件语句:
代码段2
·······
例如:进校标准:分数高于500分进普通班级,等级是A级进特长班
score = 501 grade = 'B' if score >= 500: print('进入普通班') if grade == 'A': print('进入特长班')
2.if嵌套:if执行语句中还存在if语句
例如:判断一个数是否是偶数,如果是打印偶数否则打印奇数,同时判断这个数是否是4的倍数。如果是打印’4的倍数’
num = 24 if num % 2==0: print('偶数') if num % 4: print ('是4的倍数') else: print('奇数')
二、for
1. 语法:
for 变量 in序列:
循环体
说明:
1)for、in - 关键字;固定写法
2)变量 - 变量名
3)循环体 - 和for保持一个缩进的一条或者多条语句:循环体就是需要循环的代码
4)序列:容器型数据类型的数据,例如:字符串、列表、字典、元组、集合、迭代器、生成器、range等
执行过程:
让变量去序列中取值,一个一个的取,取完位置,每取一个值就执行一次循环
-
range函数:产生一个指定范围的数字序列
range(N) - 产生[0,N)的数字序列,N必须大于0,每次数值增加1
range(M,N) - 产生[M,N)的数字序列,N必须大于M,每次数值增加1
range(M,N,step) - 产生[M,N)的数字序列,每次数字增加step
例1:写程序打印‘hello’10遍
for i in range(10): print('hello')
例2:统计100以内能被3整除的个数
num = 0
for i in range(0,100,3): num+=1 print(num)
三、while
1.while 循环
-
语法
while 条件语句:
循环体
说明:
1)while - 关键字;固定写法
2)条件语句 - 任何有结果的表达式
3)循环体:和while保持一个缩进的一条或者多条语句;循环体就是需要重复执行的代码段
执行过程:
先判断条件语句是否为Ture,为True 就执行循环体,执行完再判断条件语句是否为True…直到条件语句是False。
2.for循环和while循环的选择
当循环次数不确定的时候使用while循环,否则使用for
例如:密码输入正确结束循环
pw = '123456' pw1 = input('请输入密码:') while pw1 != pw: pw1 = input('请输入密码:') print('密码正确!')
四、circulationkeyword
1.continue:结束一次循环(当执行循环体的时候遇到continue,当次循环结束,直接进入下一次循环)
例如:
for x in range(5): if x % 2 : continue print(x) ##结果为0 2 4
2.break:结束整个循环(当执行循环体的时候遇到break,整个循环直接结束)
经常在while循环中出现的,结束死循环
例如:密码输入正确结束循环
pw = '123456' pw1 = input('请输入密码:') while True: if pw1 == pw: break pw1 = input('请输入密码:') print('密码输入成功!')
3.else:Python中完整的for 循环和while循环后面都有else结构,else结构的存在不影响原循环的执行。
for 变量 in 序列:
循环体
else:
代码段while 条件语句:
循环体
else:
代码段
当循环因为遇到break而结束的,那么循环后面else里面的代码不会执行。否则执行。
基础题
-
根据输入的成绩的范围打印
及格
或者不及格
。score =int(input('请输入成绩(0~100):') ) if score >= 60: print('及格') else: print('不及格')
-
根据输入的年纪范围打印
成年
或者未成年
,如果年龄不在正常范围内(0~150)打印这不是人!
。age = int(input('请输入年龄:')) if 0<= age < 18: print('未成年') elif 18 <= age <= 150: print('成年') else: print('这不是人!')
-
输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息
a-b的结果不是奇数
。a = int (input('请输入数字:')) b = int (input('请输入数字:')) if (a-b)%2 == 1: print(a-b) else: print('a-b的结果不是奇数')
-
使用for和while循环输出 0~100内所有3的倍数。
for i in range (3,100,3): print(i) i = 3 while True: print(i) i+=3 if i > 100: break
-
使用for和while循环输出100~200内个位数或者十位数能被3整除的数。
for i in range (100,200): a = i % 10 b = i // 100 % 10 if a%3 == 0 or b%3 == 0: print(i) i = 100 while i < 200: a = i % 10 b = i // 100 % 10 if a%3 == 0 or b%3 == 0: print(i) i+=1
进阶题
-
使用循环计算
1*2*3*4*...*10
的结果。b = 1 for i in range (1,11): b *= i print('1*2*3*4*...*10=',b)
-
统计100以内个位数是2并且能够被3整除的数的个数。
count = 0 for i in range (0,100): if i % 10 == 2 and i % 3 == 0: count+=1 print (count)
-
输入任意一个正整数,求他是几位数?
注意: 这儿不能使用字符串,只能用循环
count = 1 i = int (input('请输入一个正整数:')) while True: if i // 10 ** count >= 1: count += 1 else: break print('该数为', count ,'位数')
-
打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字⽴方和等于该数本身。例如:153是
⼀个⽔仙花数,因为
1³ + 5³ + 3³
等于 153。a = 100 while True: i = a % 10 j = a % 100 // 10 k = a // 100 if i ** 3 + j ** 3 + k ** 3 == a : print(a) a+=1 if a > 999: break
挑战题
-
判断指定的数是否是素数(素数就是质数,即除了1和它本身以外不能被其他的数整除的数)
x = int(input('请输入一个数:')) i = x-1 while True: if x % i != 0 : if i > 1: i-=1 if i == 1: print('该数为素数') else: print('该数为质数') break
-
求斐波那契数列列中第n个数的值:1,1,2,3,5,8,13,21,34… (这儿的n可以是任意正整数,可以通过输入来确定)
-
输出9*9口诀。 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
if i > 1:
i-=1
if i == 1:
print(‘该数为素数’)
else:
print(‘该数为质数’)
break -
求斐波那契数列列中第n个数的值:1,1,2,3,5,8,13,21,34… (这儿的n可以是任意正整数,可以通过输入来确定)
-
输出9*9口诀。 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
-
这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?(可以直接使用穷举法)
标签:总结,2021.3,循环体,else,学习,while,循环,print,100 来源: https://blog.csdn.net/weixin_43411140/article/details/114377729
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。