day4总结-循环结构

1.if条件语句

1.1if_elif-else结构

1)语法:

if 条件语句1:
  代码块1
elif 条件语句2:
  代码块2
elif 条件语句3:
  代码块3
  ······
else:
  代码块4

其他语句

2)执行过程

先判断条件语句1是否为True,如果为True就执行代码块1,然后整个if结果结束,直接执行后面的其他语句;
如果为False,就判断条件语句2是否为True,如果为True就执行代码块2,然后整个if结束;
如果为False,就判断条件语句3是否为True,如果为True就执行代码块3,然后整个if结束;
以此类推,如果所有的条件语句都是False,就执行else后面的代码块

练习:给一个年龄值,让你根据年龄判断这个是儿童(0 ~ 12)、少年(13 ~ 18)、青年(19 ~ 28)、中年(29 ~ 50)、老年(50以上)
age = 28
if   age <= 12:
    print("儿童")
elif age <= 18:
    print("少年")
elif age <=28:
    print("青年")
elif  age <= 50:
    print("中年")
else:
    print("老年")

2.if嵌套

2.1可以在if结构再嵌套其他的if语句

2.2判断一个数是奇数还是偶数,同时判断这个数能不能被4整除。

num = 26
if  num % 2 == 0:
    print("偶数")
    if num % 4 == 0:
        print("能被4整除")
else:
    print("奇数")

1.什么时候使用循环?

答:代码中需要重复执行某个操作的时候,就想到用循环

2.python中有for循环和while循环

3.for循环

1)语法

for 变量名 in 序列:
  循环体

2) 说明

for,in - 关键字、固定写法
: - 固定写法
变量名 - 和声明变量时的变量名要求一样
序列 - 容器型数据,python中常见的序列:字符串、列表、字典、集合、元祖、迭代器、 生成器、range
循环体 - 和for保持一个缩进的一条或者多条语句。循环体就是会被重复执行的代码

3)执行过程

让变量去序列中取值,一个一个的取,取完为止;每取一个值执行一次循环体。(for循环的循环次数,由序列中元素个数来控制)

for x in "hello":
    print(x)
    print("======")

x = h,
h
======
x = e
e
======
x = l
l
======
···

4.range函数 - 专门用来产生一定范围的数字序列

1)range(N) - 产生一个0~N-1的数字序列(整数),注意:N必须是大于0的整数

range(10) - 产生0~9的数字

2)range(M,N) - 产生M~N-1的数字序列,注意:M和N都必须是整数,而且必须N>M

3)range(M,N,step) - 从M开始,每次加step,直到N前一个为止

print("==========range函数1==========")
for  x in range(10):
    print(x,"******")

print("==========range函数2==========")
for x in range(10,100):
    print(x)

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

练习1:统计1000以内能够被3整除的数的个数

方法一:

count1 = 0
for x in range(13,1000,13):
    count1 += 1
print("个数:",count1)

方法二:

count2 = 0
for x in range(1,1000):
    if x%13 == 0:
        count2 += 1
print("个数:",count2)

练习2:统计1000以内能够被2整除但是不能被5整除的数的个数

count3=0
for x in range(1,1000):
    if x%2 == 0 and x%5 !=0:
        count3 += 1
print("个数为:",count3)

练习3:计算1+2+3+···+100

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

循环过程分析:

sum1 = 0
num = (1,2,3,4)
num =1,sum1 += 1 => sum1 = sum1 + 1 = 0+1 = 1
num =2,sum1 += 2 => sum1 = sum1 + 2 = 1+2 = 2
num =3,sum1 += 2 => sum1 = sum1 + 3 = 1+2+3 = 6
···

练习4:计算1x2x3x4...x10

sum2 = 1
for x in range(1,11):
    sum2 *= x
print(sum2)

5.while循环

1)语法

while 条件语句:
  循环体

2)说明

while - 关键字
条件语句 - 和if后面的条件语句要求一样:任何有结果的表达式(除了赋值语句以外的其他语句都可以)
循环体 - 和while保持一个缩进的一条或者多条语句:(循环体会被重复执行)

3)执行过程

先判断条件语句是否为True(如果不是布尔先转换成布尔),如果为True就执行循环体;
执行完循环体再判断条件是否为True,如果为True又执行循环体;
以此类推,直到条件语句的结果是False,整个循环结束

x = 0
while x < 次数:
  需要重复执行的代码块
x += 1

练习1:使用while循环控制程序打印5行"*****"

x = 0
while x < 5:
    x += 1

练习2:使用while循环计算1+2+3+···+100

x = 1
sum3 = 0
while x < 101:
    sum3 += x
    x += 1
print(sum3)```

6.for循环和while循环的选择

for循环:当循环次数确定的时候
while循环:当循环次数不确定的时候;死循环;

7.补充:随机数

7.1 randint(M,N) - 产生一个M~N随机数

import random
num = random.randint(0,100)
print("随机数:",num)

练习:猜数字游戏

随机产生一个数字,用户不断输入数字,直到输入的数字和产生的数字一样为止

value = int(input("请输入一个数:"))
while value != num:
    if value > num:
        print("大了,再小点儿")
    else:
        print("小了,再大点儿")
    value = int(input("请输入一个数(0~100):"))

8.循环相关的关键字

1)continue关键字

continue只能出现在循环体中;当执行循环体的时候遇到continue,当次循环直接结束,进入下次循环的判断

sum4 = 0
for x in range(11)
    if x%4==0:
        continue
    sum4 += x

2)break关键字

break只能出现在循环体中;当执行循环体的时候,如果遇到break整个循环直接结束;

print("==========break==========")
for x in range(10):
    print(x)
    break
    print("+++")
print("======:",x)

while True:
当满足循环结束的条件时:break

练习:猜数字游戏

import random
num = random.randint(0,100)
while True:
    value = int(input("请输入一个数(0~100):"))
    if value == num:
        break
    else:
        if value > num:
            print("大了")
        else:
            print("小了")
print("猜对了!",num)

3)else关键字

for 变量 in 序列:
  循环体
else:
  代码块

3.1)完整的while循环

while 条件语句:
  循环体
else:
  代码块

注意:当循环自然死亡,会执行和循环相关联的else中的代码块;如果循环是遇到break而结束,就不会执行else中的代码块

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

推荐阅读更多精彩内容