Python的分支与循环

        文章的内容是根据[小甲鱼]《零基础入门学习Python》最新版整合的一些内容,感兴趣的可以去看一看

一、if的语法结构

if语句有五种语法结构:

  1. 判断一个条件,如果这个条件成立则执行其包含的某条语句或某个代码块;
if condition:
	statement(s)
  1. 判断一个条件成立,就执行其包含的某条语句或某个代码块;如果条件不成立,就执行另外的某条语句或某个代码块;
if condition:
	statement(s)
else:
	statement(s)
  1. 判断多个条件,如果第1个条件不成立,则继续判断第2个条件,若不成立则接着往下判断;
if condition1:
	statement(s)
elif condition2:
	statement(s)
elif condition3:
	statement(s)
......
  1. 第4种是在第3种的情况下添加一个else,表示上面所有条件均不成立的情况下,执行某条语句或某个代码块
if condition1:
	statement(s)
elif condition2:
	statement(s)
elif condition3:
	statement(s)
......
else:
	statement(s)
  1. 条件表达式,即(条件成立时执行的语句 if condition else 条件不成立时执行的语句
print(1) if True else print(2)
# 结果为1

print(1) if False else print(2)
# 结果为2
>>> score = 66
>>> level = ('D' if 0 <= score < 60 else
	     	 'C' if 60 <= score < 70 else
	    	 'B' if 70 <= score < 80 else
	    	 'A' if 80 <= score < 90 else
	    	 'S' if 90 <= score <=100 else
	         '请输入0~100内的数')
>>>print(level)
# 结果为C

二、while语句

       在while语句中一般会使用能够调出循环体的continuebreak语句来跳出循环结构;

continue:跳出本轮循环,然后进行判断是否进入下一次循环;
break:直接跳出循环体执行循环体外的下一条语句;
else:在循环结构中,当循环条件不再为真的时候,else语句才会被执行,
即:

# 方式一
i = 1
while i > 7:
	print("循环体内,i值为",i)
	i += 1
else:
	print("循环体外,i值为",i)
# 结果为:
#循环体内,i值为 1
#循环体内,i值为 2
#循环体内,i值为 3
#循环体内,i值为 4
#循环体内,i值为 5
#循环体内,i值为 6
#循环体外,i值为 7

i = 1
while i > 7:
	print("循环体内,i值为",i)
	i += 1
print("循环体外,i值为",i)
# 结果同上(从这里我们还不能看出else的作用,甚至是觉得这个else是没有必要存在的,但是别急,认真看看下一条)

# 方式二
i = 1
while i < 7:
	print("循环体内,i值为",i)
	if i == 2:	# 这次我们在循环体内加一个条件语句来跳出循环体
		break
	i += 1
print("循环体外,i值为",i)
# 结果为:
#循环体内,i值为 1
#循环体内,i值为 2
#循环体外,i值为 2

i = 1
while i < 7:
	print("循环体内,i值为",i)
	if i == 2:	
		break
	i += 1
else:
	print("循环体外,i值为",i)
# 结果为:
#循环体内,i值为 1
#循环体内,i值为 2

从方式二中不同结果应该就可以看出else语句的作用了,如果是使用break语句直接退出循环体的话,对于else而言判断条件仍然为真,所以是不会执行else中的语句。

那么while else语句的实质上的作用是什么呢?
    while else语句可以在不使用标志位的情况下非常容易的检测到循环的退出状况;

可以尝试使用while语句写一写九九乘法表

x = 1
y = 1
while y <= 9:	
    while x <= y:
        a = y * x
        print(x,'*',y,'=',a,end = ' ') # end =' '意思是在print打印的内容以空格结尾
        x += 1
    print()	# 这里的print()是为了实现换行作用,等同于print('\n'),因为print默认是以回车结尾的所以这里可以省略
    x = 1
    y += 1
    
# 结果为
'''
1 * 1 = 1 
1 * 2 = 2 2 * 2 = 4 
1 * 3 = 3 2 * 3 = 6 3 * 3 = 9 
1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16 
1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25 
1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36 
1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49 
1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64 
1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81
'''

三、for语句

for 变量 in 可迭代对象: # 可迭代对象指元素能够被单独提取出来的对象
	statement(s)


for i in "hello":
	print(i)
# 结果为:
#h
#e
#l
#l
#o

那么如果想要计算1+2+3+······+99+100的值该怎么算呢,
假设为:

sum = 0
for i in 100:
	sum += 1
print(sum)

如果试过的话就会知道这个代码Python是会报错的,原因是Python将100理解为整数是一个不可迭代的对象(即Python认为整数只有一个),所以如果要迭代多个的话我们需要给Python一个范围,这里就用到了新的函数range(),它的作用是生成一个数字序列;

sum = 0
for i in range(100):
	sum += i
print(sum)

# 结果为4950

因为range()函数的格式为

range(stop)
range(start,stop)
range(start,stop,step) # step为步长,即两个数之间的间隔大小

所以如果想要累加到100时,应将stop设置为101才能够实现100的累加

我们接着可以试着求一下10以内的素数

for n in range(2,10):
    for x in range(2,n):
        if n % x == 0:
            print(n,'=',x,'*',n // x)
            break
    else:
            print(n,'是一个素数')

# 结果为:
#2 是一个素数
#3 是一个素数
#4 = 2 * 2
#5 是一个素数
#6 = 2 * 3
#7 是一个素数
#8 = 2 * 4
#9 = 3 * 3
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

忱铭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值