循环与分支结构

一、分支结构

1.if-elif-else结构

执行过程:先判断条件语句1是否为True,为true就执行代码段1,整个if-elif-else结束
如果为False,就判断条件语句2是否为True,为True就执行代码段2,整个if-elif-else结束
如果是False,就判断条件语句3是否为True,为True就执行代码段3,整个if-elif-else结束
如果所有条件都不成立,执行else后面的代码段
如:根据年龄范围打印:少年(<14),青年(14~25),壮年(26-35),中年(36-45),老年(>50)

age = eval(input('输入要判断的年龄'))
if age < 14:
    print('少年')
elif 14 <= age <= 25:  # 也可以直接<=25,因为前一个条件在不满足的情况下才会执行第二个if
    print('青年')
elif 26 <= age <= 35:
    print('壮年')
elif 36 <= age <= 50:
    print('中年')
else:
    print('老年')

2.if 嵌套

if结构中的代码块可以再出现其他的If语句
如:判断一个数是否是偶数,并再判断这个数是否是4的倍书

num = eval(input("请输入需要判断的数字"))
if num & 1 == 0:
    print('%d是偶数' % num)
    if num % 4 == 0:
        print('%d是2的倍数也是4的倍数' % num)
    else:
        print('%d是2的倍数但是不是2的倍数' % num)
else:
    print('%d是奇数' % num)
    if num % 10 == 3:
        print('个位数是3')

二、循环结构

1.for循环

语法:
for 变量 in 序列:
循环体

说明:
for - 关键字,固定写法
变量名 - 和声明变量的要求是一样的
in - 关键字,固定写法
序列: - 结果是容器型数据:字符串,列表,元组,字典,集合,迭代器,生成器 range
: - 固定写法
循环体 - 和for保持一个缩进的一条或者多条语句:需要重复执行的语句

执行过程:
让变量去序列中取值,一个一个的取,取完为止,每取一个值,执行一次循环体
通过控制序列中元素的个数来控制循环的个数

for i in 'python':
    print(i)
'''
i == p,print(i)=p
i == y,print(i)=y
i == t,print(i)=t
i == h,print(i)=h
i == o,print(i)=o
i == n,print(i)=n

range函数:为了让for循环更方便的控制循环次数
range(N正整数) - 产生0~N-1的数据序列
range(4) -> 0,1,2,3
range(M,N) - 产生M~N-1的数据序列
range(3,10) -> 3,,4,5,6,7,8,9
range(m,n,step) - 产生m开始每次+step产生下一个数字到n前一个数为止的序列
range(0,10,2) -> 0,2,4,6,8

for x in range(4):
    print(x)

for x in range(0, 10, 2):
    print(x)

for x in range(3, 10):
    print(x)

作用:产生指定的数字序列;控制循环次数
注意:如果for循环中取出来的变量在循环体中无用,这个变量可以直接用_命名
如:练习:打印0-100中能被3整除的数:

a = []
for i in range(101):
    if i % 3 == 0:
        a.append(i)
print(a)

for x in range(0, 101, 3):
    print(x)

统计 1-100中能被4整除且个位数是2的数字的个数

b = []
for x in range(1, 101):
    if x % 4 == 0 and x % 10 == 2:
        b.append(x)
print('100以内能被4整除且个位数是2的数的个数为%d' % len(b))
print('他们分别是:', b)

运行结果为:

100以内能被4整除且个位数是2的数的个数为5
他们分别是: [12, 32, 52, 72, 92]
[Finished in 0.2s]
count = 0   # 计数的套路
for x in range(1, 101):
    if x % 4 == 0 and x % 10 == 0:
        print(x)
        count += 1

print('一共有%d个' % count)

计算1+、、、、+100

x = 1
for i in range(1, 101):
    sum1 += x
    x += 1
print(sum1)

2.while循环

语法:
while 条件语句:
循环体

说明:
while - 关键字:固定写法
条件语句 - 任何有结果的表达式;数据、已经声明过的变量、运算符表达式(不能是赋值语句)等
: - 固定写法 缩进
循环体 - 和while保持一个缩进的一条或者多条语句;(需要重复执行的语句)

执行过程:
先判断条件语句是否是True,如果为True就执行循环体;执行完循环体再判断条件语句是否为True,
为True继续执行循环体,以此类推,直到条件语句的结果为False 循环结束。

num = 0
while num < 5:
    print('2')
    num += 1

# for 和 while的选择
使用for循环:
a.循环次数确定的时候
b.遍历序列

使用while循环:
a.死循环
b.循环次数不确定
如:不断输入数字,直到输入的数字是0为止
例如:猜数字游戏:游戏开始的时候随机产生一个100以内数字,不断输入数字直到输入的数字和产生的数字一致,游戏结束在没有猜对的情况下,给出大了或者小了的提示信息。

number = randint(0, 100)
value = eval(input('请输入您的数字'))
co = 0
while number != value:
    if value > number:
        print('您猜的数字大了')
        value = eval(input('请再次输入您的数字'))
    elif value < number:
        print('您猜的数字小了')
        value = eval(input('请再次输入您的数字'))
    co += 1
print('猜对了,数字是%d' % number, '共猜%d次' % co)

while常见使用方法:

while True:
   重复执行的代码
   if 退出循环的代码
       break

3.循环嵌套

循环嵌套:外面的循环执行一次,里面的循环要执行完
例如:计算1!+2!+3!+...+10!

sum1 = 0
# 将1~10取出来
for num in range(1, 11):
    # 计算取出来的数的阶层
    sum2 = 1
    for x in range(1, num+1):
        sum2 *= x    # 循环:一直重复执行 乘以X之后再赋值给sum2
    # 将阶乘值加起来
    sum1 += sum2
    print(sum2)

print(sum1)

4.循环中的关键字

1.continue
continue 是循环体内的关键字
作用是:当执行循环体的时候,如果遇到continue,当次循环结束,直接进入到下次循环的判断。

for x in range(4):
    print('===')
    continue
    print('+++')

运行结果不会出现+++
2.break
break也是循环体中的关键字
continue是结束当次循环,
当执行循环体的时候,如果遇到break 那么整个循环直接结束
例如:不断输入数字,直到输入的0为止,然后将输入的所有奇数求和

sum1 = 0
while True:
    value = eval(input('输入数字:'))
    if value == 0:
        break
    if value % 2 == 0:
        continue
    sum1 += value
print(sum1)

3.else

for var in 序列:
    循环体
else:
    代码段
    
while 条件:
    循环体
else:
    代码段
    
    else遇到break就不会执行
    当循环自然死亡,(for 后的变量数据取完了或者while后的条件为false),else后面的代码段会在循环结束后执行
    如果循环是因为遇到break而结束的,else后面的代码段就不会执行
else的意义:通过判断else中的代码有没有执行来判断循环有没有break

作业:

numbers=1 
 for i in range(0,20):   
      numbers*=2  
      print(numbers) 

使numbers1累乘2,20次

summation=0 
num=1 
while num<=100:   
     if (num%3==0 or num%7==0) and num%21!=0:        
           summation += 1   
      num+=1
print(summation)

计算100以内能被3或者7整除和同时被21整除的数字的个数

编程实现题;

  1. 求1到100之间所有数的和、平均值
    for 实现:
sum = 0
count = 0
for i in range(1,101):
    sum+=i
    count+=1
print(sum,sum/count)

while实现:

Sum = 0
count = 0
i = 1
while i <= 100:
    Sum+=i
    count+=1
    i+=1
print(Sum,Sum/count)
  1. 计算1-100之间能3整除的数的和
    for实现:
Sum = 0
for i in range(1,101):
    if i % 3 ==0:
        Sum = Sum + i
print(Sum)

while实现:

i=1
Sum = 0
while i<=100:
    if i % 3 ==0:
        Sum+=i
    i+=1
print(Sum)
  1. 计算1-100之间不不能被7整除的数的和
    while实现:
i=1
Sum = 0
while i<=100:
    if i % 7 !=0:
        Sum+=i
    i+=1
print(Sum)

for实现:


Sum = 0
for i in range(1,101):
    if i % 7 != 0:
        Sum+=i
print(Sum)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容

  • 01-数据类型转换 1、数据类型的自动转换(主要是整型和浮点型之间自动转换) 2、数据类型的强制转换格式:类型名(...
    d4lx阅读 557评论 0 2
  • 图片发自简书 一 分支结构 python中的分之结构只有if语句,没有switch num = 11print('...
    Fly_withbird阅读 326评论 0 0
  • if分支结构: python中的分支结构只有if,没有switch 什么时候用if:如果做某事(执行某段代码)需要...
    圣咸鱼阅读 215评论 0 0
  • 一、引例 小猫出山洞的平均时间———计算机仿真第一个门:2h第二个门:4h第三个门:6hfunction [T,M...
    爱学习的张小路阅读 570评论 0 0
  • 萧萧烟霭遮村户, 笼寒枝、同风舞。 渐别繁华冬早暮, 败荷沉寂,昏鸦无语。 独自听风雨。 一花一叶分歧路, 半世半...
    逸塵居士阅读 331评论 0 0