day04 Python循环和分支

一、if语句补充

1.if-elif-...else

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

其他语句

执行过程:先判断条件语句1是否为true,如果为true就执行代码块1,执行完后再执行其他语句
如果条件语句1是False,就判断条件语句2是否为true:
如果条件语句2为true就执行代码块2,执行完后再执行其他语句
如果条件语句2为False就执行代码块3,执行完后再执行其他语句

import random
score = random.randint(0,101)
if 90<=score<=100:
    print(score,'优秀')
elif 70<=score<=89:
    print(score,'良好')
elif 60<=score<70:
    print(score,'及格')
elif 60>score>=0:
    print(score,'不及格')
else:
    print(score,'成绩输入有误')

2.if语句可以嵌套使用

if 条件语句1:
if条件语句2:
执行语句块2
else:
执行语句块3
else:
执行语句块4

#练习 :给一个数字,如果是偶数就打印“xx是偶数”是偶数并且还能被4整除,就打印‘xx是4的倍数’,否则就打印"xx是奇数“
num1 = 32
if num1%2==0:
    if num1%4==0:
        print(str(num1)+'是4的倍数')#print('%d是偶数' % num1)
    else:
        print(str(num1)+'是偶数')
else:
    print(str(num1)+'是奇数')

3.判断数据的类型

isinstance(值,类型名) -->判断指定的值是否是指定的类型,结果是就是True,不是就是False

print(isinstance(10,int))
True

二、类型的强制转换

数据类型转换: 类型名(被转换的数据)
常用的数据类型:int float bool str

1.其他的数据类型转换成整型:int()

浮点型:只保留整数部分
布尔类型: True -> 1 False -> 0
字符串:去掉字符串的引号后,剩下的部分本身就是一个整型数据的字符串才能转换成整型。

print(int(23.873))
print(int(True))
print(int('+23'))
23
1
23

2.其他的数据类型转换成浮点型:float()

整型:在整数后面加一个'.0'
布尔类型:True -> 1.0 False ->0.0
字符串:去掉字符串的引号后,剩下的部分本身就是一个整型或浮点型的字符串才能转换成浮点型数据。

print(float(321))
print(float(True))
print(float('-233.2'))
321.0
1.0
-233.2

3.其他类型的数据转换成布尔类型:bool()

不管什么类型的数据都可以转换成布尔值:
整数中,除了0会转换成False,其他的都会转换成True
总结:所有为0为空的值都会转换成False,其他的值都是True。注意:'0'转换后为True。

4.其他类型的数据转换成字符串:str()

不管什么类型的数据都可以转换成字符串,其他数据转换成字符串的时候,就是直接在数据的外层加上引号.

三、for循环

需要重复执行某个过程,就可以使用循环。 Python中的循环有For循环和while循环
Python循环语句的控制结构图如下所示:


循环

1、for循环:

格式:for 变量名 in 序列:
循环体
for: 关键字
变量名:和声明变量时的变量名要求是一样的,功能是存储值
in :关键字 ,在。。。里的意思
序列:容器类型的数据。字符串、列表、字典、元组、集合等
循环体:需要重复执行的代码块
执行过程:使用变量去序列中取数据,一个一个的取,取完为止,每取一个值,执行一次体。

for char in 'abc123':
    print(char)
a
b
c
1
2
3

2、range函数

xrange是Python2.x中的函数,在Python3.x使用range函数代替了
range 功能是产生指定范围的数字序列。一般用在for循环中,控制循环次数。或者产生索引值。
range(n):产生 0 ~ n-1的整数序列,n为负数,不产生整数序列
range (m,n):产生 m~n-1的整数序列,m<n才能产生整数序列
range(m,n,step):从m开始,每次加step产生下一个数字,直到n前面那一个为止,step为负数也不产生整数序列

for x in range(-5,0,2):
    print(x)
print('---分割线---')
for x in range(0,10,3):
    print(x)
print('---分割线---')

num1=0
for num in range(1,101):
    num1+=num
print(num1)
-5
-3
-1
---分割线---
0
3
6
9
---分割线---
5050

 练习只用一个循环计算1*2*3*。。*10和2*4*6*。。*10
num2 =1;num3=1 
for x in range(1,11):
    num2 *=x
    if x%2 == 0:
        num3 *=x    
print(num2)
print(num3)
3628800
3840
 练习2:有一个字符串'abcdef',依次取出字符串中偶数位(下标值位偶数)的字符
sum=-1
for x in 'abcdef':
    sum+=1
    if sum%2 ==0:
        print(x)

print('---')
str1='abcdef'
for index in range(0,len(str1),2):
    print(str1[index])
a
c
e
---
a
c
e

四、while循环

while 循环:
格式:while 条件语句:
循环体
while :关键字
条件语句:结果是True,或者False
循环体:重复执行的代码段
执行过程:判断条件语句是否为True,如果为True就执行循环体,执行完循环体在判断条件语句是否True,
如果为True,再次执行循环体,直到条件语句的值为False,循环结束,直接执行其他语句。

注意:如果条件语句的结果一直都是True,就会造成死循环。在循环体中要有可以让循环结束的操作。
Python 中没有do-while循环

 使用while循环计算1+2+。。+100
x=1;a=0
while x<=100:
    a+=x
    x+=1
print(a)
5050

 练习:计算2+4+6+。。+100
a=0;b=2
while b<=100:
    a+=b
    b+=2
print(a)
2550

我们可以通过设置条件表达式永远不为 false 来实现无限循环,但可以使用 **CTRL+C **来退出当前的无限循环,无限循环在服务器上客户端的实时请求非常有用。

五、continue和break

continue和break两个关键字,都是作用于循环当中,用来结束循环的。
continue:关键字,在循环体中遇到continue,就结束当次循环,直接进入下次循环的判断
如果是for循环,就让变量去取下一个值,如果是while循环就判断while后边的条件语句是否为true

for x in range(10):
    print(x)
    continue   #不执行continue后面的语句,直接让x取下一个值
    print('---')

for x in range(10):
    if x%2:
        continue
    print(x)

break:关键字,在循环体中遇到break,就直接结束整个循环。直接执行循环后面其他的语句

for x in range(10):
    print(x)
    break
    print('===')
print('!!!!')

使用break结束死循环
 num= 1
 while True:
    if num>100:
        break
    print(num)
    num+=1


 练习:找出100-1000以内第一个能被3和17同时整除的数
for x in range(100,1001):
    if x%3 ==0  and x%17 ==0:
        print(x)
        # 找到第一个就不用再往下找了
        break

102

六、for和while的选择,以及循环嵌套

1.for和while的选择

for循环的循环次数是确定的,whlie循环的循环次数可以不确定

1.循环次数不确定的时候,选择while循环。次数确定一般使用for循环
2.通过循环遍历一个序列中的值,使用for循环

2.input()

input():接受从控制台输入数据的数据(输入的数据以回车结束)
程序中遇到input()函数,程序会阻塞,等待用户输入完成后,才能执行后面的代码
使用value去保存从控制台输入的数据

3.产生随机数

Python中有一个内置模块,可以产生随机数:random
randint(m,n):产生一个m~n的随机数(包含n,且为整数)
导入random模块后,才能使用随机数模块

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

推荐阅读更多精彩内容

  • 换上前往航海路方向的B1后,车厢内空旷的有点儿凄凉,加长车厢内,算上司机也不过五六个人。就在几分钟之前,开往农业东...
    申由己阅读 455评论 0 50
  • 祁尔想,高傲如张爱玲,一旦跌入爱恋,也会卑微到尘埃里。那她现在这样灰头土脸的狼狈样也不算太丢人。 听说女生最后都会...
    寂立阅读 409评论 0 1
  • 大一,干事,执行者🤗 大二,部长,管理者🤔 大三,主席,决策者🤖 大四,观众,旁观者🤓 不同角色,不同定位,不同思...
    bd4ecc9147dd阅读 190评论 0 0