高家俊 2.18 while循环和循环关键字

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结束就不执行。

循环练习题

  1. 判断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, '个素数')
    
  2. 求整数1~100的累加值,但要求跳过所有个位为3的数。

    b = 0
    for a in range(1, 101):
        if a % 10 == 3:
            continue
        b += a
    print(b)
    
  3. 有⼀分数序列: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)
    
  4. 写程序计算 n 的阶乘 n! 的结果

a = 1
n = int(input("请输入一个整数:"))
for x in range(1, n+1):
    a *= x
print(a)
  1. 求1+2!+3!+…+20!的和
a = 1
s = 0
for x in range(1, 21):
    a *= x
    s += a
print(s)
  1. 写程序求表达式 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)
上一篇:用 Python 写摸鱼监控进程,用这个~


下一篇:python多线程