Python | python基础(四) - 分支循环判断

分支循环判断

1. 判断

1.1. if/else

python的条件判断是什么?

python中使用if,else,elif 作为条件判断

使用缩进表示 层级关系

  • 如果if判断为true ,则执行下面的缩进的语句
  • 如果if判断为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

所以可以正常输出

在这里插入图片描述


注意事项和细节

  • 注意条件判断后面有一个:冒号
  • python中的缩进是四个空格tab的缩进
  • 'x'的值为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)) 


2. 分支

....

3. 循环

为什么需要循环?

如果我们要进行一个运算计算当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中的循环

  1. for in
  2. while

3.1. for in

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


3.2. range()

range是什么?

  • 中文: n. 范围;区间
  • 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(),生成的序列,只不过是完成了这个目的的其中一种方式


3.3. while

第二种循环就是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是跳过当前循环,直接到下一次循环


总结提升:

  1. 循环是让计算机做重复任务的有效的方法。
  2. break语句可以在循环过程中直接退出循环,而continue语句可以提前结束本轮循环,并直接开始下一轮循环。这两个语句通常都必须配合if语句使用。
  3. 有些时候,如果代码写得有问题,会让程序陷入“死循环”,也就是永远循环下去。这时可以用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

参考廖雪峰py循环

posted @ 2021-06-06 10:20  茶哩哩  阅读(208)  评论(0编辑  收藏  举报