一、条件语句
为啥要引入条件语句,在python中,我们写了很多语句从上到下会依次执行,但我们想有选择的运行,有条件的显示出来
(一)if条件语句
格式
格式构成用法
条件表达式:就是利用比较运算符来写的比较运算符代码块:在一个if语句里,无论条件表达式判断结果是啥,一定有一个代码块会执行,有且只会选择一个代码块 ,有缩进的格式就是代码块,代码块以缩进开始,直到代码恢复到之前的缩进级别时结束,同一个代码块中的代码,要么都执行要么都不执行,缩进格式是4个空格elif:如果该条件表达式已经True了,那么后面即使有其他elif也成立,也不会输出该elif后面的代码块了,从上至下执行else:可以看成是备胎,可有可无,在前面所有条件都尝试过不成立时,才会运行该后面的代码块,所以如果当一个条件不好写时,可以写它的对立事件,剩下的难的条件就丢给else(二)while条件语句
while一般循环三要素:
1.设定一个初始值2.对初始值进行条件判断,增加一个条件语句,对初始值进行一个条件表达式的限制
3.初始值的自增长或减少紧紧围绕着初始值
格式
格式构成用法
else:当while循环正常执行时,else就会执行,否则不会执行,且只会执行一次break:立即退出循环语句,不会运行elsecontinue:用来跳过当次循环,不影响else进行初始值:必须是数值,循环内部必须有对初始值的限制
独特功能
重复检测同一个条件while自带循环功能,不同于简单的条件语句典型的死循环
打印图案
二、循环语句
循环语句可以使指定的代码块重复指定的次数。循环语句分成两种,while循环 和 for循环while
循坏同样的条件语句格式:
for
while、for 与 else
for同while和else连用的作用效果是一样的,如果程序没有正常运行比如遇到break(注意:continue不影响),则不会运行else的代码块
range()函数
range(开始,结束,步长) 左闭右开 可以省略 开始数据默认0,步长省略默认1range(9)相当于[0,1,2,3,4,5,6,7,8],就是一个容器
1.写一个9*9算法表
i=1 while i<10: j=1 while j-i<=0: print('%d*%d=%2d |'%(j,i,i*j),end=' ') ##%2d中的2是为了控制整数的占位,这样算法表就可以对齐了 j+=1 i+=1 print() 12345678
解题思路:有10行,阶梯型—内嵌的初始值与外部的会有关联,利用%2d来对齐
2.求1000以内所有的水仙花数
i=1 while i<1000: hundr=i//100 tens=(i-hundr*100)//10 Digits=i-hundr*100-tens*10 if hundr**3+tens**3+Digits**3==i: print(i) i+=1 12345678
3.获取用户输入的任意数,判断其是否是质数?
i=2 j=input('请输入一个大于1自然数:') if (float(j))%1!=0: print('格式错误,请重新输入') else: num=int(j) while i<num: if num%i==0: print('%d不是质数'%num) break i+=1 else: print('%d是质数'%num) 12345678910111213
4.猜拳游戏:
出拳 玩家:手动输入 电脑:随机输入判断输赢: 玩家获胜 电脑获胜 平局我们规定石头=0,剪刀=1,布=2使用电脑自动生成的随机数 random.randint()import random you_cho=int(input('请输入你的选择(0:石头,1:剪刀 2:布):')) compr_cho=random.randint(0,2) print('电脑出的是出的是%d'%compr_cho) if you_cho==compr_cho: print('平局') elif you_cho>compr_cho : if you_cho-compr_cho>1: print('玩家获胜') else: print('电脑获胜') elif compr_cho-you_cho>1: print('电脑获胜') else: print('玩家获胜')
1234567891011121314151617上一节 运算符