小甲鱼——分支和循环

分支结构

分支结构是由if语句来实现的

if语句:

1.判断一个条件,如果这个条件成立,就执行其包含(通过缩进实现)的莫条语句或某个代码

if 3 > 5:
    print("我在里面")
    print("我也在里面")
print("我在外面")

 这里面就是假的,说明不会打印缩进里面的内容,而是会打印缩进外面的print(“我在外面”)

2.如果条件成立,就执行其包含的某条语句或某个代码块

如果条件不成立,就执行另外的某条语句或某个代码块

if "小甲鱼" =="小姐姐":
    print("小甲鱼是小姐姐")
else:
    print("小甲鱼不是小姐姐!")

 结果非常简单,就是  “小甲鱼不是小姐姐”  因为 小甲鱼一定不等于小姐姐,所以就会执行else结构语句。

3.判断多个条件,如果第一个条件不成立,则继续判断第二个,第二个不成立就继续判断第三个,第三个不成立就以此类推

score = input("请输入你的分数:")
score =int(score)

if 0 < score < 60:
    print("D")
elif 60 <= score < 80:
    print("C")
elif 80 <= score < 90:
    print("B")
elif 90 <= score < 100:
    print("A")
elif score == 100:
    print("S")

4.就是在第三种情况下添加一个else,表示上面所有的条件均不成立的情况下,执行某条语句或某个代码块

score = input("请输入你的分数:")
score =int(score)

if 0 < score < 60:
    print("D")
elif 60 <= score < 80:
    print("C")
elif 80 <= score < 90:
    print("B")
elif 90 <= score < 100:
    print("A")
elif score == 100:
    print("S")
else:
    print("请输入一个0-100之间的数值!")

5.条件表达式

就是将一个完整的if,else 结构整合成一个表达式

即:

条件成立时执行的语句 if  条件  else  条件不成立时执行的语句

比如,源代码是这样的 

age = 16
if age < 18:
    print("抱歉,未满18随禁止访问")
else:
    print("欢迎您来")

那么将它改成条件表达式就是

print("抱歉,未满18岁禁止访问") if age < 18 else  print("欢迎您来。")

 分支结构的嵌套

就是在if  else语句中进行套娃,展示一下

age =18 
isMale = Ture
if age < 18:
    print("抱歉。未满18岁禁止访问。")
else:
    if isMale :
        print("任你选购")
    else:
        print("抱歉,本店不适合小公主~")

 else语句:

当循环体不再为真时,else语句才会被执行。

我们先举个例子说明:

i = 1
while i < 5:
    print("循环外,i的值是", i)
    i += 1
else:
    print("循环外,i的值是", i)

这段代码的运行结果是:

循环内,i的值是 1

循环内,i的值是 2 

循环内,i的值是 3

循环内,i的值是 4

循环外,i的值是 5

但是我们需要注意的就是,当这段代码删去else,即:

i = 1
while i < 5:
    print("循环外,i的值是", i)
    i += 1

    print("循环外,i的值是", i)

此时,这段代码的运行结果,与上一段未删除else的结果,完全相同,那么else语句的的作用到底是什么呢?

大家不要忘了break语句,break语句是一个跳出循环的语句,那么它跳出循环之后,我们的条件依旧为真,那么此时else语句依旧不会被执行,因为else语句的定义就是条件不再为真时,else语句才会被执行、我们举个例子说明:

i = 1
while i < 5:
    print("循环外,i的值是", i)
    if i == 2:
        break

    i += 1

    print("循环外,i的值是", i)

这段代码的运行结果是:

循环内,i的值是 1

循环内,i的值是 2 

当i = 2 的时候,受到break语句的影响,python立刻跳出循环,不会执行后面的else语句

那么else语句设置到底有什么作用!?

else语句的作用:

可以非常容易的检测到循环退出的状况

day = 1
while day <= 7:
    answer = input ("今天有好好学习吗?") 
    if answer  != "有":
        break
    day += 1
else:
    print("非常棒,你已经坚持了七天连续学习")

 这段代码,如果你一直回答“有” 七次以后,就会出现“非常棒,你已经坚持了七天连续学习”

但是你中间有一次 回答的不是“有”,那么就会直接跳出循环。不会执行else后面的语句,这样就可以反应出程序是从哪里开始跳出循环的。

循环结构的嵌套:

以九九乘法表的例子来介绍:

i  = 1
while i <= 9:
    j = 1
    while j <= i
        print(j,"*" ,i,"=", j * i, end=" ")
    print()
    i += 1

这就是一个典型的嵌套,外层循环操纵的是横排打印,内层循环操作的是竖排打印,然后带入相应的值就得到乘法表

#强调#

无论是break语句还是continue语句,它们只能作用于一层循环体

(其实我不太理解这个例子) 

day = 1
hour = 1
while day <=7:
    while hour <=8:
        print("今天我一定要坚持学习八个小时!")
        hour +=1
        if hour > 1:
            break
    day +=1

如果break语句跳出两次循环,那么说明“今天我一定要坚持学八个小时”会打印八次

如果break语句跳出一次循环,那么说明“今天我一定要坚持学八个小时”会打印七次

所以结论就是:无论是break语句还是continue语句,它们只能作用于一层循环体

循环结构

让程序不断重复一段代码

while循环

1.可以重复某一段代码

love = "yes"
while love == "yes"
    input("今天你还爱我吗?")

再这段代码中,只要你一直输入 “yes” 代码就会一直进行,你输入的不是 “yes” 代码停止运行。

2.可以利用循环来进行计算

#从1加到1000000的和
i = 1
sum = 0
while i <= 1000000:
    sum = sum +i
    i = i + 1
print(sum)


3.死循环

如何操控和退出死循环

利用break语句

例如:

while Ture:
    input("主人,我可以退出循环了吗?")
    if answer == "可以!"
        break
    print("哎呀,我真的好累啊")


 这段代码运行的时候,只要你回答的是“可以!”

那么就会立即跳出循环,并且不会执行后面的“哎呀,我好累啊”

但是如果,你回答的不是“可以!”那么就会一直重复这个循环。

以上的例子就是break语句的用法,我们都知道break语句是用来跳出循环的,那么还有一种跳出循环的语句是continue语句。

continue语句

:用来跳出循环,但是它只跳出本轮循环,还会回到循环体的条件判断位置,继续进行下一轮循环。

例如:

i = 0
while i < 10:
    i += 1
    if i % 2 == 0:
        continue
    print(i)

这段代码的运行结果就是 1   3    5   7   9 

因为当 i 是偶数的时候,他就会跳出一次循环体,回到开头,去执行下一次循环。

for循环:

for循环的语法结构需要稍加记忆,如下:

for   变量   in   可迭代对象:

statement(S)      statement译为“称述”

可迭代对象解释:就是指那些元素能够被单独提取出来的对象。例如:我们常说的字符串就是可迭代对象。

迭代的解释:就是比如"Fish"他是可迭代对象,那么你把“F”  “i” “s”  “h”一个一个的分离出来,这个过程就叫迭代。

例如:

for each in "FishC":
    print(each)

那么这个代码的运行结果就是:”F“  ”i"  "s"  "h"  "C"

其实,我们也可以通过while循环去实现这样一段代码,但是如果用到while循环,就需要使用len函数(用于获取一个对象的长度的函数)。后面会学。

 2.利用for循环去算1加到1000000的和

错误示范:

sum = 0
for i in 1000000:
    sum += 1

这样子python就会报错,那么报错的原因就是1000000它是整数,并不是可迭代对象,它不可以被迭代。

那么想要让1000000可以被迭代,就要用到 range(),它的作用就是帮你生成一个数字序列

range()的用法:

range(stop)

range(start,stop)

range(start,stop,step)

注意:无论使用哪一种,它的参数都必须是整形

1.使用第一种时,使用从0开始到stop的整数数列。举个例子:

for i in range(10):
    print(i)
    

但是此时就是打印出来的是:0,1,2,3,4,5,6,7,8,9

但是如果你想打印出来的是0到10的数字,那么你就应该写range(11)

这样打印出来的值才会是0.1.2.3.4.5.6.7.8.9.10.

2.第二种用法:允许你决定开始和结束的两个位置,例子:

for i in range(5,10):
    print(i)

 这段代码的结果是5.6.7.8.9  没有10

3.第三种用法:它除了刚才那两个参数还可以指定你步进的跨度,例子:

for i in range (5,10,2):
    print(i)

这断代码的结果是 5.7.9.

    并且这个跨度的值还可以是一个负数,例子

for i in range(10,5,-2):
    print(i)

这段代码的结果是:10.8.6

现在开始写利用for循环从1加到1000000的代码

sum = 0
for i in range (1000001)
    sum += i 
print(sum)

结果就是500000500000

最后for循环和while循环一样,都支持嵌套语句,也可以搭配break语句和continue语句,例如:

#找出10以内的所有素数
素数:大于1的自然数中,除了1与其本身,无法被其他整数整除的数字叫做素数
for i in range(2,10):
    for x in range(2,n):(这个就是for的嵌套,准备进行逐一比对)
        if n % x == 0:
            print(n,"=",x "*",n//x)
            break
    else:
        print(n,"是一个素数")

不太理解最后一段代码!我完了再研究一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值