day5 分支(if)和循环结构(for和while)
一、if语句
python中的分支结构只有if语句,没有switch语句
1.if语句使用场景:如果做某件事情(执行某段代码)需要满足某个条件才行,就考虑使用if
2.怎么用if
a.语法1:
if 条件语句:
代码段1
其他语句
b.说明:
if -关键字,是如果的意思
条件语句 -任意一个有结果的的语句,最好是布尔值
如果不是布尔值,则在判断时会转换为布尔值
注意:在Python中,只要有冒号,冒号后面第一行必须有缩进。冒号缩进组合形成的代码段,相当于其他语言的大括号
代码段1 -和if保持一个缩进的语句。也可以是一行语句,也可以是多行语句。
c.执行过程:
先判断条件语句结果是否为True,如果为True就执行代码段1,然后再执行后边的其他语句;如果为False,就不执行代码段1,直接执行if外边的其他语句
注意:和if保持一个缩进的代码,都是满足if后边的条件才会执行的代码
没有和if保持一个缩进的代码,不管条件是否满足都会执行
name=input('请输入您的名字:')
if name=='曾':
print('%s是雇佣兵' % name)
else:
print('%s你是大哥'% name)#总结:需要满足某个条件才执行的语句就写在if里面,不管条件是否满足都需要执行的卸载if外面
#练习:输入一个数,如果能被3整除,就打印
num = int(input('请输入一个数:'))
if num%3 == 0:
print('%d是3的倍数' % num)
else:
print('%d不是3的倍数' % num)
结构二:if-else结构
a.语法:
if 条件语句:
代码段1
else:
代码段2
b.说明
else -关键字,固定写法;否则执行代码段2
c.执行过程:
先判断条件语句是否为True,如果为True就执行代码段1,否则执行代码段2
练习:输入一个整数,如果这个数是偶数就打印‘xx是偶数
num1=int(input('请输入一个数:'))
if num1%2==0:
print('%d是偶数'%num1)
else:
print('%d是奇数'%num1)
练习:输入一个字符串,判断字符串的开头是否是小写字母,如果是,将字符串第一个字符转换成大写字母,并打印,否则直接打印
str1=input('请输入一个字符串:')
str2=str1[0]
if str1[0] >='a' and str1[0]<= 'z':
print(str2.upper()+str1[1:])
elif str1[0] >='A' and str1[0]<= 'Z' :
print(str1)
else:
print('您输入的第一个字符不是字母!')
结构三:if-elif-else:
a.语法:
if 条件语句1:
代码段1
elif 条件语句2:
代码段2
elif 条件语句3:
...
else:
代码段n
b.说明
elif-关键字;在条件不满足的前提下,判断其他条件是否满足
c.执行过程:
先判断条件语句1是否成立,如果成立直接执行代码段1,然后整个if结构结束,接着执行其他语句;
如果条件语句1不成立,再判断语句2是否成立。如果成立直接执行代码段2,然后整个if结构结束,接着执行其他语句;
以此类推,如果条件语句都不成立,就执行else后面的代码段n
注意:a.后边的条件语句判断实在前面条件语句不成立的前提下执行的
b.else不是一定要写,根据后面的情况,else结构可以省略
练习:
print('=====================================\n欢迎您,曾!请选择:\n1.添加学生\n2.查看学习\n3.修改学生信息\n4.删除学生\n5.返回\n=====================================')
choose=int(input('请选择:'))
if choose==1:
name=input('请输入姓名:')
phone=input('请输电话:')
age=input('请输入年龄:')
print(name,phone,age)
elif choose==2:
print('曾 男 未婚 32岁 驻叙利亚雇佣兵!')
elif choose==3:
print('正在修改信息...')
elif choose==4:
print('目前正在删除学生信息')
else:
print('正在退出...')
print('=====================================\n❀欢迎您,曾!请选择:\n❀1.添加学生\n❀2.查看学习\n❀3.修改学生信息\n❀4.删除学生\n❀5.返回\n=====================================')
if的使用
1.if的嵌套
'''
在if结果中还可以再写if结构
输入一个数,如果这个数是偶数,打印’xx是偶数‘,同时判断它是否是4的倍数
如果不是偶数只打印’XX是奇数‘
'''
num1=int(input('请输入一个整数:'))
if num1%2==0:
print('%d是偶数'%num1)
if num1%4==0:
print('%d是4的倍数'%num1)
else:
print('%d是偶数但是不是4的倍数'%num1)
else:
print('%d是奇数'%num1)
2.三目运算符
'''
C/JAVA/JS语言都有一个三目运算符:表达式?值1:值2——>判断表达式的值是否为True,是为值1,否则为值2
Python中的三目运算符:值1 if 表达式 else 值2
:判断表达式的值是否为True,为True整个表达式的结果是指1,否则为值2
当我们要根据某个条件是否成立,获取不同的值的时候才使用三目运算
num2,num3=10,2
max=num2 if num3>num2 else num3
print(max)
练习:输入一个年份,获取是否是闰年。
year=int(input("请输入一个年份:"))
if year % 400 == 0 or (year%4==0 and year%100!=0):
print("这是闰年")
else:
print("不是闰年")
'''
python中的循环结构有两种:for循环和while循环
当实现某个功能的时候发现某个操作需要重复执行,这个时候就考虑使用循环
'''
二、for循环
a.语法:
for 变量 in 序列
循环体
b.说明
for -关键字
变量- 一个变量名,可以是已经赋过值的变量也可以是新的变量(一般是新的变量)
in -固定写法
序列 -属于序列的数据:Python中的序列:字符串、列表、字典、元祖、集合、range、迭代器、生成器
: -固定写法
循环体 -需要重复执行的代码就放在循环体中;循环体需要和for保持一个缩进
c.执行过程(重要!)
让变量取序列中屈指,一个一个的取,取完为止。每取一个值,执行一次循环体
(序列中元素的个数决定了循环体执行的次数)
'''
for char in range(9):
print('雇佣兵')
练习:给一个字符串’hosee 23jh!hs89_=sssAsK,统计这个字符串中数字字符的个数
str1='hosee 23jh!hs89_=sssAsK'
num2=0
for char1 in str1:
# if char1.isdigit()==1:
# num2+=1
if '0'<=char1<='9':
num2+=1
print(num2)
range函数
**python3里是range,Python2是xrange
range(N) ->产生数字序列 0N1 N必须是整数
range(M,N) ->产生数字序列 MN1 M,N必须是整数,N>M
range(M,N,step) ->从M开始,每次值增加step产生下一个数字,一直到N前一个位置。
(M,N必须是整数,step>0,N>M;step<0,N<M)
** 练习:计算1+2+...100 **
sum=0
for num3 in range(1,101):
if num3%13==0 or num3%7==0:
sum+=num3
print(sum)
print(type(num3))
#通过便利字符串下标遍历字符串
str1='hello world!'
for index in range(len(str1)):#index表示下标,从前往后取
print(str1[index])
for index in range(-1,-len(str1)-1,-1):#index表示下标,从后往前取
print(str1[index])
'''
三.while
a.语法
while 条件语句:
循环体
b.说明
while -关键字;当...的时候
条件语句 -和if后边的条件要求一样(赋值语句不能作为条件语句,别的语句都行)
: -固定写法
循环体 -需要执行的语句卸载循环体中;循环体和while保持一个缩进
c.执行过程
当程序执行到while循环,就先判断条件语句是否为True,为True就执行,执行完再判断,直到条件语句为False
for和while的选择:
严格来说for循环可以做到的while都可以做到,while能做到的事情,for循环不一定能做到
使用for:a.遍历序列 b.循环次数确定
使用while:a.死循环 b.循环次数不确定
**控制while循环的次数
while 变量 <次数:
需要执行的代码
变量+=1
'''
练习,录入学生成绩,录入以输入'end'结束录入
#方法一:
while True:
str1=input('请输入成绩:')
if str1=='end':
break
# 方法二:
grade=input('请输入成绩')
while grade!='end':
input('请输入成绩')
练习:输入密码,直到输入的密码合理为止,至少6位
grade=input('请输入密码')
while len(grade)<7:
grade=input('输入有误,请再输入密码:')
'''
四、continue
1.continue是Python关键字,只能用在循环体中
功能:执行到continue的时候,结束当次循环(cotinue后面的语句),直接进入下次循环的判断
for循环就是让变量取下一个值,而while循环就是直接去判断while后边的条件是否为True
2.break
break是Python关键字,只能在循环体中
功能:执行循环体的时候,遇到break循环直接结束。直接执行后面的语句
练习:找到大于111的数字中第一个能够被17整除的数
num=111
while True:
if num%17==0:
print(num)
#
3.else
for 变量 in 序列:
循环体
else:
代码段
while 条件语句:
循环体
else:
代码段
执行过程:循环执行过程不变,else后边代码段,如果循环是自然死亡会执行;遇到break结束就不会执行