一.Python下的if条件判断
1.Python下if条件判断的语法格式
<1>单条件
if 条件判断:
条件满足时执行的语句体
<2>双条件
if 条件判断:
条件满足时执行的语句体
else:
if条件不满足时执行的语句体
<3>多条件
if 条件判断:
语句体1
elif 条件判断:
语句体2
elif 条件判断:
语句体3
.......
else:
if条件不满足时执行的语句体
else和elif都必须与if联合使用,不能单独使用
2.if条件判断的条件判断运算符,逻辑运算符与特殊的真假
<1>运算符
==(等于);!=(不等于);<>(不等于)——>仅适用于python2的版本;>(大于);<(小于);>=(大于等于);<=(小于等于)
<2>逻辑运算符
and(并且);or(或者);not(非)
<3>特殊的真假
值 | 真和假 |
0 | 假 |
非0 | 真 |
""或'' | 假 |
None | 假 |
[] | 假 |
() | 假 |
{} | 假 |
3.if条件判断的练习
<1>练习一:
1.从控制台输入你要出的拳 ---石头(1)/剪刀(2)/布(3)
2.电脑随即出拳
3.比较胜负
import random
var=int(input('出拳的选项为1(石头),2(剪刀),3(布).请输入你要出的拳:'))
computer=random.randint (1,3)
print('电脑出的拳为:%d' %computer)
print('选手出的拳为:%d' %var)
if var==computer:
print('平局')
elif (var==1 and computer==2) or (var==3 and computer==1) or (var==2 and computer==3):
print('玩家获胜')
else:
print('电脑获胜')
<2>练习二:
判断闰年
用户输入年份,判断是否为闰年?
- 能被400整除的是闰年,能被4整除但是不能被100整除的是闰年
year = int(input('请输入年份:'))
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print('%s是闰年' %year)
else:
print('%s不是闰年' %year)
<3>练习三:
1.输入年、月,输出本月有多少天
2004 2
29天
2010 4
30天
year=int(input('请输入年份:'))
month=int(input('请输入月份:'))
if month==2:
if (year%400==0) or (year%4==0 and year%100!=0):
print('%s年的%s月的天数为:29天' %(year,month))
else:
print('%s年的%s月的天数为:28天' %(year,month))
elif month==1 or month==3 or month==5 or month==7 or month==8 or month==10 or month==12:
print('%s年的%s月的天数为:31天' %(year,month))
else:
print('%s年的%s月的天数为:30天' %(year,month))
<4>练习四:
用if判断输入的值是否为空,如果为空,报错Error
num=input('请输入值:')
if not num:
print("error")
<5>练习五:
用户输入月份,打印该月份所属的季节
3,4,5春季 6,7,8夏季 9,10,11秋季 12 1 2冬季
month=int(input('请输入月份(1-12):'))
if month==3 or month==4 or month ==5:
print('%s月对应的季节是春季' %month)
elif month==6 or month==7 or month ==8:
print('%s月对应的季节是夏季' %month)
elif month==9 or month==10 or month ==11:
print('%s月对应的季节是秋季' %month)
elif month==12 or month==1 or month ==2:
print('%s月对应的季节是冬季' %month)
二.Python下的for循环
1.Python下for循环的语法格式
for 临时变量 in 字符串/range得到的列表/列表/元组/set集合/字典:
循环满足条件时执行的代码
esle:
循环不满足条件时执行的代码
值的注意的是:
- else可以不写,也可以写为pass(什么都不做)
- range的格式:range(起始值,终止值,步长)——>其中range包头不包尾(例如range(10)表示0~9);起始值,步长可以损裂。起始值损裂时,默认起始值为0,步长损裂时,默认为1。
2.for循环的练习
<1>练习一:
有1,2,3,4四个数字
求这四个数字能生成多少个互不相同且无重复数字的三位数
sum=0
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
if k!=i and k!=j and i!=j:
num=i*100+j*10+k
print(num)
sum+=1
print('一共有%s个' %sum)
<2>练习二:
用户登录需求:
1.输入用户名和密码;
2.判断用户名和密码是否正确(name='root',passwd='westos')
3.登录仅有三次机会,超过3次会报错
for i in range(3):
name = input('请输入用户名:')
passwd = input('请输入密码:')
if name=='root' and passwd=='westos':
print('登陆成功')
break
else:
print('第%s次登陆失败,还有%s次机会' %(i+1,2-i))
else:
print('登陆次数超过三次,请稍后重试')
<3>练习三:
用代码模拟命令行
import os
while True:
cmd = input('[kiosk@foundation41 xin]$ ')
if not cmd:
print(cmd,end='')
elif cmd=='exit':
exit()
else:
os.system(cmd)
<4>练习四:
输入两个数值:
求两个数的最大公约数和最小公倍数
最小公倍数=(num1 * num2) / 最大公约数
num1=int(input('请输入参与运算的第一个数字:'))
num2=int(input('请输入参与运算的第二个数字:'))
min=int(min(num1,num2))
for i in range(min,0,-1):
if num1%i==0 and num2%i==0:
gys=i
print('%s和%s的最大公约数是%s' %(num1,num2,gys))
gbs = num1 * num2 / gys
print('%s和%s的最小公倍数为%d' % (num1, num2, gbs))
break
三.Python下的while循环
1.Python下while循环的语法格式
初始化语句
while 判断条件语句:
条件满足时,做的事情1
条件满足时,做的事情2
........
控制条件语句
else:
条件不满足时,做的事情
或者死循环:
while True:
条件满足时,做的事情1
条件满足时,做的事情2
......
值的注意的:else可以不写,也可以后面写pass(什么都不做)
2.while循环的练习
<1>练习一:
在控制台连续输出五行*,每一行星号数量一次递增
*
**
***
****
*****
i=1
while i<=5:
j=1
while j<=i:
print('* ',end='')
j+=1
print('')
i+=1
<2>练习二:
*****
****
***
**
*
i=1
while i<=5:
j=1
while j<=6-i and j>0:
print('* ',end='')
j+=1
print('')
i+=1
<3>练习三:
*
**
***
****
*****
i=1
while i<=5:
j=1
k=1
while k<=5-i:
print(' \t',end='')
k+=1
while j<=i:
print('*\t',end='')
j+=1
print('')
i+=1
<4>练习四:
*****
****
***
**
*
i=1
while i<=5:
j=1
k=1
while k<=i-1:
print(' \t',end='')
k+=1
while j<=6-i:
print('*\t',end='')
j+=1
print('')
i+=1
<5>~<8>打印99乘法表,打印出来的格式同上面<1>~<4>
<5>练习五:
i=1
while i<10:
j=1
while j<=i:
result=j*i
print('%d*%d=%d\t' %(i,j,result),end='')
j+=1
print('')
i+=1
<6>练习六:
i=1
while i<=9:
j = 1
while j<=10-i :
result=(10-i)*j
print('%d*%d=% d\t' %(10-i,j,result),end='')
j+=1
print('')
i+=1
<7>练习七:
i=1
while i<10:
j = 1
k = 1
while k<=9-i:
print(' \t',end='')
k+=1
while j<=i:
result=j*i
print('%d*%d=%d\t' %(i,j,result),end='')
j+=1
print('')
i+=1
<8>练习八:
i=1
while i<=9:
j=1
k=1
while k<=i-1:
print(' \t',end='')
k+=1
while j<=10-i :
result=(10-i)*j
print('%d*%d=% d\t' %(10-i,j,result),end='')
j+=1
print('')
i+=1
<9>练习九:
import random
num=random.randint(1,100)
i=1
while i<=5:
num1=int(input('请输入你猜的数字:'))
if num==num1:
print('恭喜中奖')
break
elif num1<num:
print('too small')
elif num1>num:
print('too big')
print('你还有%s次机会' %(5-i))
i+=1
else:
print('失败')
四.break,continue和exit()的用法
1.break的用法
在循环中,break语句用于提前退出循环
for i in range(10):
if i == 5:
break
print(i)
print('hello python')
#输出 0
# 1
# 2
# 3
# 4
# hello python
2.continue的用法
在循环过程中,也可以使用continue语句,跳过当前的这次循环,直接开始下一次的循环。
for i in range(10):
if i == 5:
continue
print(i)
print('hello python')
#输出 0
# 1
# 2
# 3
# 4
# 6
# 7
# 8
# 9
# hello python
3.exit()的用法
在循环过程中,可以使用exit()来退出整个程序。
for i in range(10):
if i == 5:
exit()
print(i)
print('hello python')
#输出 0
# 1
# 2
# 3
# 4