【Python】之控制流语句



顺序语句

运行策略:从左到右, 从上到下

一、if 条件判断(分支语句)

根据程序满足不同条件下运行不同代码

if语句执行有个特点,它是从上往下判断,如果在某个判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elif和else

#第一种
if <条件判断表达式>:
    <这里的代码表示当上面条件成立的时候,运行的代码>

#第二种
if <条件判断表达式>:
    <这里的代码表示当上面条件成立的时候,运行的代码>
else:
    <条件不成立时运行的代码>
#第三种
if <条件判断表达式>:
    <这里的代码表示当上面条件成立的时候,运行的代码>
elif <条件判断表达式2>:
    <条件判断表达式2成立的时候,运行的代码>
elif <条件判断表达式3>:
    <条件判断表达式3成立的时候,运行的代码>
...
else:#上面全不成立运行

if: 必须出现,只能出现一次
elif:可以没有,有几次都可以
else:可以没有,如果有只能出现一次

布尔类型和其他数据类型之间的转换关系

所有空值为假,其他为真
转换关系:凡是代表空的,就转换成假,否则为真

二、循环语句

根据条件满足,不断地运行某一段代码

2.1 for循环

for循环和编程语言中常见的循环不太一样,它实际上不是一个循环,而是一个遍历功能,会依次对一个可迭代的数据中的每一个数据进行操作.

在Python中 for循环可以遍历任何序列的项目,如一个列表或者一个字符串等。

for循环的格式
for 临时变量 in 你要进行遍历的变量:
循环满足条件时执行的代码
遍历的变量:有很多数据构成的变量,如列表、字符串等

2.2 range函数

生成线性序列

range(10) #该函数有惰性,不会全显示出来,这里表示0到9(左闭右开区间)
>>range(0, 10)
list(range(5))
>>[0, 1, 2, 3, 4]
list(range(0,50,5 ))
>>[0, 5, 10, 15, 20, 25, 30, 35, 40, 45]
#计算1到100
# 先定一个累加器
n = 0
for i in range(1, 101):
    
    # 每次把遍历出来的i 的值  累加到 n 上面去
    n += i 
n

使用1-100中所有7的倍数的且为偶数的数字打印出来

for a in range(1,101):
    if a %7 ==0 and a%2==0:
        print(a)
>>14
28
42
56
70
84
98

2.3 while循环

while 条件表达式:
条件满足时,做的事情1
条件满足时,做的事情2
条件满足时,做的事情3
…(省略)…

#打印-1到-20中所有3的倍数
i=-1
while i >=-20:
    if i %3 ==0:
        print(i)
    i -= 1
>>-3
-6
-9
-12
-15
-18

2.4 break

退出本"层"循环(一般与if一起使用)

name = '我想要去打游戏,不想学习'
for i in name:
    if i == ',':
        break
    print(i)
    print('------')
>>------------------------------------------

2.5 continue

结束本""循环

continue的作用:用来结束本次循环,紧接着执行下一次的循环

注意:

break/continue只能用在循环中,除此以外不能单独使用

break/continue在嵌套循环中,只对最近的一层循环起作用
提取个位数:取余10
提取百位数:整除100
提取十位数:1、整除10再取余10 2、取余100再整除10

练习 寻找水仙花数
题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

for i in range(100,1000):
    a=i%10
    b=i%100//10
    c=i//100
    if a**3+b**3+c**3==i:
        print(i)
>>153
370
371
407
for i in range(100,1000):
    a=int(str(i)[0])
    b=int(str(i)[1])
    c=int(str(i)[2])
    if a**3+b**3+c**3==i:
        print(i)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值