流程控制(if while for)
Posted 点滴180
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了流程控制(if while for)相关的知识,希望对你有一定的参考价值。
在我们代码程序里面主要就三种结构
1.顺序结构
自上而下,依次进行。(代码运行都是顺序结构)
2.分支结构
代码运行到某个节点之后根据条件的不同执行不同的代码
分支结构的关键就是 if 判断
3.循环结构
代码运行到某个节点一直重复执行某一段代码
直到条件结束
循环结构的关键就是(while 和 for)
if判断
# if 判断的第一个知识点,代码的缩进
# 如果女孩子年龄小于30岁 打印小姐姐
# girl_age = 48
# if girl_age < 30:
# print(\'小姐姐好\') # 思考这个地方为什么有空格?
# 一般这里缩进的空格是4个
# 如果输入的年龄大于30,程序直接结束
# 所以这个程序print(\'小姐姐好\')执行的条件取决于上面的那个条件
# 他们俩个具有从属关系
# 在python中使用缩进来表示代码的从属关系,
# 也就是说缩进的代码能不能执行要看他上一行代码。
# 并不是所有的代码都拥有子代码。
# 同属于一个关键字的子代码必须要保持相同的缩进量。
# 比如这种就是错误的
# girl_age = 48
# if girl_age < 30:
# print(\'小姐姐好\')
# print(\'小姐姐好\')
# print(\'小姐姐好\')
# print(\'小姐姐好\')
# 这里的print(\'小姐姐好\')要保持相同的缩进量
# 如果俩个代码是同级别的互不影响。
# 可以简单的记忆一下,遇到冒号下面的代码必缩进。
# 第二种(if else )
# # 如果女孩子年龄小于30岁 打印小姐姐 否则打印认错人
girl_age = 22
if girl_age < 30:
print(\'小姐姐好\')
else:
print(\'认错人了\')
# 如果条件成立则进行if的子代码
# 如果条件不成立进行else的子代码
if判断(if和elif,else)
# 如果女孩子年龄小于30岁 打印小姐姐 小于40打印阿姨我不想努力了 小于50打印抱歉
girl_age = 22
if girl_age < 30:
print(\'小姐姐好\')
elif girl_age < 40:
print(\'阿姨我不想努力了\')
elif girl_age < 50:
print(\'抱歉\')
else:
print(\'躺平\')
# 条件1成立 执行if的子代码,elif和else都不执行
# 条件2成立说明条件1没有成立,执行elif的子代码,if和else都不执行
# 条件可以是一个,也可以是多个连接
# gender = \'female\'
# age = 18
# height = 165
# is_beautiful = True
# if gender == \'female\' and age < 22 and height > 155 and is_beautiful:
# print(\'吃饭 看电影\')
# else:
# print(\'我有事\')
# if嵌套
# 同级别走一个程序就不会走另外一个
while循环
# 就是想让某一段代码重复的运行
while True:
username = input(\'username>>>:\')
password = input(\'password>>>:\')
if username == \'jason\' and password == \'123\':
print(\'登录成功\')
else :
print(\'登录失败\')
# while 条件:
# 循环体代码1
# 循环体代码2
# 当条件成立的情况下 会依次执行while的子代码
# 子代吗运行结束之后再次返回到条件处判断条件是否成立,如果成立立即执行
# 如果不成立则结束循环
# 很明显上面的程序是有缺陷的,即使输入正确的密码和用户名还是会一直循环。
# 所以我们应该在登录成功哪里结束循环这个时候就应该加一个(break)
# break用来结束离他最近的一个循环。
while True:
username = input(\'username>>>:\')
password = input(\'password>>>:\')
if username == \'jason\' and password == \'123\':
print(\'登录成功\')
break
else :
print(\'登录失败\')
#那如果他上面还有一个循环该怎么结束呢?
# while True:
# res = input(\'start>>>:\')
# while True:
# username = input(\'username>>>:\')
# password = input(\'password>>>:\')
# if username == \'jason\' and password == \'123\':
# print(\'登录成功\')
# break
# else :
# print(\'登录失败\')
# break
# 循环打印1-10
count = 1
while count < 11:
print(count)
count +=1
循环打印1-10 除了数字7
count = 1
while count < 11:
if count == 7:
count +=1
# 跳过本循环 开始下一次循环
# 这里可以加一个continue
continue
print(count)
count +=1
# 上面那个循环我们很容易混乱,这是因为我们不能分清if 和 count +=1
# 首先我们应该知道while条件成立之后会接着执行他的子代码,if条件成立会执行他的子代码,如果不成立
# 就会执行while的第二个子代码。
# while的嵌套
while True:
username = input(\'username>>>:\')
password = input(\'password>>>:\')
if username == \'jason\' and password == \'123\':
print(\'登录成功\')
while True:
command = input(\'command>>>:\')
if command == \'q\':
break
print(\'正在执行你的命令\')
else :
print(\'登录失败\')
# 首先while条件成立之后执行用户输入姓名密码,如果if条件成立则会打印登录成功,接着进入if条件成立的下一环节进入另一个
# while循环,如果while循环继续成立,且if判断也成立 因为下一环节有break,所以会结束这个循环,又继续进入上一循环
# 这是成立的情况下。
# 当用户输入q之后要想全部循环都停掉,这里除了再加一个break之外
# 还有一种是全局标志位
while True:
username = input(\'username>>>:\')
password = input(\'password>>>:\')
if username == \'jason\' and password == \'123\':
print(\'登录成功\')
while True:
command = input(\'command>>>:\')
if command == \'q\':
break
print(\'正在执行你的命令\')
break
else :
print(\'登录失败\')
# 这个是再加一个break
flag = True # 这里令flag = True
while flag: # 这里把 True换成flag
username = input(\'username>>>:\')
password = input(\'password>>>:\')
if username == \'jason\' and password == \'123\':
print(\'登录成功\')
while flag: # 这里的True 换成flag
command = input(\'command>>>:\')
if command == \'q\':
flag = False # 这里把break 换成flag = False
print(\'正在执行你的命令\')
else :
print(\'登录失败\')
# 这是全局标志位。
for循环
# for循环能做到的事情while循环都可以做到,但是for循环更简单更快捷
# name_list = [\'jason\',\'egon\',\'kevin\',\'tony\']
# 获取列表的长度有一个叫做len
# print(len(name_list))
# 所以它可以获取列表里面有几个 print(len(name_list))
# count = 0
# while count < len(name_list):
# print(name_list[count])
# count += 1
# for 循环
# for name in name_list:
# print(name)
# for 变量名 in 可迭代对象: # 看成是 字符串 列表 字典等类型
# for循环的循环体代码
# 变量名尽量做到见名知意,如果真不知道一般以i j item 命名。
# for循环列表的时候 会依次拿到相关的变量值
# for 循环字符串的时候会依次拿到相关单个字母,将单个单个的字符依次赋值给item
# for item in \'hello world\':
# print(item)
# for循环字典的时候 只会拿到key,value不参与。
# for i in {\'name\':\'jason\'}:
# print(i)
# 打印数字0-10
# 这是while循环
# count = 0
# while count < 11:
# print(count)
# count += 1
# for i in range(11): # range简单的看成是一个能够产生一个含有多个元素的列表
# print(i)
# range(起始位置,终止位置) 顾头不顾尾
# range在python3中 类似于是一个老母猪
# 需要值的时候才会给你 不需要的时候就不给
# 在python2中如果输入range(10),他会直接给你0到9数字列表,而python却给你(0,10)
# 他俩的区别在于python3比python2节省内存。
# python2中的 xrange(10)等价于Python3中的range(10)
# break
# for i in [1,2,3,4,5,6]:
# if i == 4:
# break # 结束本层for循环 与while+break一致
# print(i)
# for i in [1,2,3,4,5,6]:
# if i == 4:
# continue # 结束本层for循环 与while+continue一致
# print(i)
# else for 循环正常结束之后走else 否则不走 与 while+else一致
# for i in range(5):
# if i == 3:
# break
# print(i)
# else:
# print(\'快结束了\')
以上是关于流程控制(if while for)的主要内容,如果未能解决你的问题,请参考以下文章