标签:否则 flow 优化 ctr 必须 false 要求 提升 name
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
??break
break 是结束当前的循环
??continue
continue是跳过当前循环,直接到下一次循环
总结提升:
break
语句可以在循环过程中直接退出循环
,而continue
语句可以提前结束本轮
循环,并直接开始下一轮循环。这两个语句通常都必须配合if语句
使用。Ctrl+C
退出程序,或者强制结束Python进程。练习
要求: 请利用循环依次对list中的每个名字打印出Hello, xxx!.
L = [‘Bart‘, ‘Lisa‘, ‘Adam‘]
L = [‘Bart‘, ‘Lisa‘, ‘Adam‘]
for name in L:
print("Hello,%s" % name)
# print
Hello,Bart
Hello,Lisa
Hello,Adam
?? 注: for
,if
,while
,这些判断语句后面要加:
解法二
L = [‘Bart‘, ‘Lisa‘, ‘Adam‘]
for name in L:
print("Hello"+name) # 这个地方做成并串
# print
Hello,Bart
Hello,Lisa
Hello,Adam
标签:否则 flow 优化 ctr 必须 false 要求 提升 name
原文地址:https://www.cnblogs.com/martin-1/p/14854683.html