2.18 高家俊 while循环和循环关键字
三目运算符
在c语言里,三目运算符:如果表达式为真,运算表达式的结果为值一,否则值2.
c语言里的语法
# 表达式?值一:值二
在python里用法与c语言相似
# 值一 if 表达式 else 值二
# 例:a如大于10,result是0否则是1
a = 102
result = 0 if a > 10 else 1
print(result)
三目运算符在python里的运算规则就是如果表达式的结果是True整个运算的结果就是值一,否则值二。
while循环
语法:
# while 条件语句:
# 循环体
# 例:
a = 0
while a < 5:
print('1')
语法说明
while - 关键字,此次固定写法。
条件语句 - 可以是任何有结果的表达式,但是赋值语句不行。
:- 固定写法。
循环体 - 和while保持一个缩进的一条或者多条语句,会重复执行的代码。
执行过程
先判断条件语句是否为True,是执行循环体,False循环结束;
条件语句只要判断为True,就会一种执行循环体,只到判断到False为止。
for和while的选择
凡是可以使用for解决的问题使用for,for解决不了的使用while;循环次数可以确定的使用for循环,循环次数无法确定的使用while。
循环关键字
continue和break - 只能在循环体中使用。
1.continue
作用:结束一个循环,执行循环体时遇到continue当次循环结束,进入下一次循环。
#例
for x in range(100)
if x % 2 == 0:
continue
print(x)
2.bresk
作用:结束整个循环,执行循环体时遇见bresk,结束整个循环。
#例
password = '123'
while True:
value = input('密码')
if value == password:
break
print('登录成功’)
完整的循环结构
# 完整的for
for 变量 in 序列:
循环体
else:
代码段
# 完整的while
while 条件语句:
循环体
else:
代码段
else说明:1、else的存在不影响原代码执行;2、else后面的代码会在循环结束后执行,如果循环是因为遇到break结束就不执行。
循环练习题
-
判断101-200之间有多少个素数,并输出所有素数。
b = 0 a = 0 for x in range(101, 201): for i in range(2, x): if x % i == 0: b = 0 break else: b = 1 if b == 0: continue else: print(x) a += 1 print(a, '个素数')
-
求整数1~100的累加值,但要求跳过所有个位为3的数。
b = 0 for a in range(1, 101): if a % 10 == 3: continue b += a print(b)
-
有⼀分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的第20个分数
a = 2 b = 3 c = 1 d = 2 for x in range(1, 18): c += d a += b print(a, '/', c)
-
写程序计算 n 的阶乘 n! 的结果
a = 1
n = int(input("请输入一个整数:"))
for x in range(1, n+1):
a *= x
print(a)
- 求1+2!+3!+…+20!的和
a = 1
s = 0
for x in range(1, 21):
a *= x
s += a
print(s)
-
写程序求表达式 a + aa + aaa + aaaa+ … 的结果,其中a是1~9的数字,求和的项数用n来控制。(a和n可以用变量来表示)
例如:a为3, n为5的时候: 3 + 33 + 333 + 3333 + 33333
a = int(input("请输入一个1~9中的整数:")) n = int(input("请输入一个整数:")) c=0 x=a for n in range(n): c+=x x=10*x+a print(c)
3 + 3333 + 33333
a = int(input("请输入一个1~9中的整数:"))
n = int(input("请输入一个整数:"))
c=0
x=a
for n in range(n):
c+=x
x=10*x+a
print(c)