python的条件判断是什么?
python中使用if,else,elif
作为条件判断
使用缩进表示 层级关系
true
,则执行下面的缩进的语句false
,则不执行,如果还有else,则执行else的语句▶Example:
age = 20 if age >= 18: print("你已经是成年人!") else: print("你还是未成年人!")
优化上述的判断:
age = 20 if age >=18: print("你是成年人") elif age >6: print("你是青少年) else: print("你是小孩")
else if 用 elif
缩写表示
所以if判断的完整形式是 :
if 条件判断1: 执行语句 elif 条件判断2: 执行语句 elif 条件判断3: 执行语句 .... else: 执行语句
if else 语句的执行特点,如果if判断条件为true
,则执行后面的缩进语句后,不执行后面的elif或else
age = 20 if age >=18: print("你是成年人") elif age > 6: print("你是青少年") else: print("你是小孩子")
则执行输出第一个执行语句 print("你是成年人)
,就完了
if else 判断还可以写成
if 'x': print("hello world!)
'x'的值为true
,非0数值,非空字符串,非空list等,就判断为true
,否则为false
所以可以正常输出
出
注意事项和细节
:
冒号tab
的缩进true
,非0数值,非空字符串,非空list等,就判断为true
,否则为false
练习
答案:
hegiht = 1.75 weight = 80.5 bmi = weight / (height*height) if bmi < 18.5: print("过轻!") elif bmi <25: print("正常") elif bmi <28: print("过重") elif bmi < 32: print("肥胖") else: print("严重肥胖!!!")
注意事项:
由于if-else语句是由上到下
执行,符合条件就中止,所以只要按照范围的顺序,就可以完成判断条件可以是
< 18.5,< 25,< 28,< 32,
而不用加上具体的范围18.5-25.25-28,28-32
优秀答案
name = input('请输入你的名字:') height = float(input('请输入你的身高(米):')) weight = float(input('请输入你的体重(KG):')) bmi=weight/(height**2) if bmi < 18.5: print('%s,你的BMI指数为%.1f,太廋了哦!' % (name,bmi)) elif bmi <= 25: print('%s,你的BMI指数为%.1f,身体正常!' % (name,bmi)) elif bmi <= 28: print('%s,你的BMI指数为%.1f,身体过重!' % (name,bmi)) elif bmi <= 32: print('%s,你的BMI指数为%.1f,身体肥胖!' % (name,bmi)) else: print('%s,你的BMI指数为%.1f,太肥了吧!' %(name,bmi))
....
为什么需要循环?
如果我们要进行一个运算计算当n=1,2,3..时,从1+2+3+4+n的和。
这样运算较少的情况可以直接计算出来
显然就是
r1 = 1 r2 = 1+2 r3 = 1+2+3 r4 = 1+2+3+4+5
每次需要下一个值,这个需要的值
,这个值的特点就是上一个加一
但是如果是计算量再大一点呢,从1+2+3+4+5+6+7+8+9+..20,勉强可以计算出来
再大一点呢 1+2+3+4+....n
显然,无法直接计算出来
这样就要使用到循环
python中的循环
names = ['tom','jack','judy','mike'] for name in names: print(name) # print tom jack judy mike
执行过程分析:
循环name
(for name),这个name来自(in)names
依次把names
中的元素赋值给name
,然后输出
names中是需要
的值
用循环输出1+2+3+4+5
整数和,用sum
输出
就是把所有需要
的值先给出来1,2,3,4,5,然后依次的用出
sum = 0 for x in [1,2,3,4,5]: sum = sum + x print(sum) # print results 15
同样的,这个是量比较小,如果是1+2+3+4..100呢,显然无法一个个列出来,这个时候,需要用range
range是什么?
▶Example: 使用 range(0,5)生成0,1,2,3,4 五个序列数
range(x,y),生成的序列,表示x~y ,不包括y,包括x
如果只是一个参数 ,range(5)
,表示默认从0开始~5,不包括5也就是0,1,2,3,4
sum=0 for x in range(6): sum+=x print(sum)
运行:
15
❌报错;
TypeError: unsupported operand type(s) for +=: 'builtin_function_or_method' and 'int'
虽然使用range(),这个迭代生成器,但是我们还是要回到基本的原理,就是每一次循环需要一个值
无论是[ ],(),还是range(),生成的序列,只不过是完成了这个目的的其中一种方式
第二种循环就是whlie
,当型循环,条件满足,则循环,当条件不满足,则结束循环
n = 0 while n <30: n = n +1 if n % 2 == 0: continue print(n)
运行:
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29