基本流程控制
基本流程控制
顺序结构
代码自上而下依次运行
分支结构
代码运行到某个节点,会依据条件的不同,执行不同的代码
循环结构
代码运行到某个节点,重复执行某一段代码,直到循环的结束
分支结构
在python中,会依据代码的缩进来表述代码的所属关系,一般情况下缩进四个空格。
'''
if 条件1:
代码1
代码2
...
elif 条件2:
代码1
代码2
...
else:
代码1
代码2
...
如果条件1满足执行if的子代码块,条件1不满足条件2满足执行elif的代码块,条件1,2都不满足,则执行else的代码块
if 判断语句只执行一个分支,一个分支执行,则其他分支都不执行
'''
列:
'''
基于if的嵌套判断,以及条件的逻辑运算
需求:
相亲系统
用户输入姓名,年龄,性别,身高,体重
如果用户输入的年龄小于22岁并且身高大于170并且性别为女,体重小于110,则请求活动,是否同意,如果同意则打印选择
活动列表,用户可以选择不同的活动,获得感情分,满100则加微信,不同意则打印出,’下一位‘
如果用户输入的年龄大于22或者身高小于170,体重大于120,则打印出,用户已下线
'''
import time
func_dic = {
'1': '逛街',
'2': '看电影',
'3': '吃饭',
'4': '打游戏',
'q': '退出'
}
user_name = input('请输入你的姓名>>>').strip()
user_age = input('请输入你的年龄>>>').strip()
user_gender = input('请输入你的性别>>>').strip()
user_height = input('请输入你的身高>>>').strip()
user_weight = input('请输入你的体重>>>').strip()
if int(user_age) < 22 and user_height > '170' and user_gender == '女' and user_weight < '110':
print('你符合相亲标准,是否参与接下来的活动(y?n)')
choice = input('请输入你的选择>>>').strip()
if choice == 'y':
while True:
for k, v in func_dic.items():
print('活动编号:%s 活动: %s' % (k, v))
check = input('请输入你的活动指令>>>').strip()
if check == 'q':
break
if check.isdigit():
check = int(check)
if check in range(len(func_dic)):
if check == '1':
print('正在逛街')
time.sleep(3)
elif check == '2':
print('正在看电影')
time.sleep(3)
elif check == '3':
print('正在吃饭')
time.sleep(3)
else:
print('正在打游戏')
time.sleep(3)
else:
print('请输入正确的指令')
else:
print('输入非法')
else:
print('你很好,我不配,不好意思下一位')
else:
print('你走吧')
循环结构
while
'''
while 条件:
循环体代码
当条件成立时,执行循环体代码,返回判断条件是否成立,如果成立,则继续执行循环体代码,直到条件不成立则循环结束
'''
1.循环加普通的break
user = 'lyh'
user_password = '123'
while True:
username = input('请输入你的用户名')
password = input('请输入你的密码')
if username == user and password == user_password:
print('登录成功')
break
else:
print('登录失败')
2.循环加else
count = 0
while count < 11:
print(count)
count += 1
else:
print('当while循环没有被break结束掉,运行else的代码块')
'''
上述情况,当这个循环没有被人为的结束的时候,则会执行else的代码块
'''
3.break和continue
'''
break : 直接跳出循环
continue : 结束本次循环,但不是跳出循环
'''
4. **全局标志定位**
'''
全局标志定位,即定义一个全局变量,(如flag = True ),当循环体的某一个判断成立需要跳出循环的时候,在该条件判断语句的下面加一个(flag = False)这样结束循环
'''
user = 'lyh'
user_password = '123'
flag = True
while flag:
username = input('请输入你的用户名')
password = input('请输入你的密码')
if username == user and password == user_password:
print('登录成功')
while flag:
choice = input('请输入你的命令 (q退出)')
if choice == 'q':
flag = False
else:
print('登录失败')
例:
'''
基于循环的猜年龄游戏,登录之后才可以玩,只能猜三次
'''
name = 'lyh'
password = '123456'
age = 18
flag = True
while flag:
user_name = input('请输入你的用户名:===>').strip()
user_password = input('请输入你的密码:===>').strip()
if user_name == name:
if user_password == password:
print('登录成功,请开始游戏')
count = 0
while True:
if count < 3:
input_age = input('请输入年龄:====>').strip()
input_age = int(input_age)
if input_age == age:
print('successful')
flag = False
break
else:
print('game over')
count += 1
else:
print('你个蠢比,三次都猜不对,充值请继续猜,是否充值(y/n)')
user_yes_or_no = input('是否充值===>').strip()
if user_yes_or_no == 'y':
print('充值成功,继续猜')
count = 0
elif user_yes_or_no == 'n':
flag = False
break
else:
print('用户名密码错误')
else:
print('用户名不存在')
for
'''
for 变量名 in 可迭代对象(字符串,列表,字典,元组):
循环体代码
'''
1.与break和continue
'''
与之前的while循环一样
'''
2.与else
'''
与while+else一样,只要循环体没有被人为的结束,则运行else的代码块
'''
例:
'''
打印九九乘法表
'''
for i in range(1,10):
for j in range(1, i+1):
print('%s*%s = %s '%(j,i,i*j),end=' ')
print()
range
'''
range(起始位置, 终止位置)
顾头不顾尾
'''
在python2和python3之间的区别
'''
python2: python2中直接回生成一个列表,比较耗费内存空间
xrange和python3中的range等价
python3 : 在python3里面生成一个’老母鸡‘,你需要,它给你下一刻蛋,不需要就不下,节省内存空间
'''
浙公网安备 33010602011771号