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循环语句的控制结构图如下所示:


day04 Python循环和分支_第1张图片
循环

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 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)

你可能感兴趣的:(day04 Python循环和分支)