python基础⑤-控制流程

系列文章目录


python基础①-基础环境搭建和工具使用
python基础②-常用的各种数据类型初认知
python基础③-数据类型常用的操作和方法字符串、数值、bool
python基础④-数据类型常用的操作和方法列表、元组、字典、集合
python基础⑤-控制流程
python基础⑥-函数
python基础⑦-字符编码与文件操作
python基础⑧-异常
python基础⑨-迭代器和生成器
python基础⑩-面向对象
python基础⑪-继承与派生
python基础⑫-多进程
python基础⑬-多线程
python基础⑭-进程池、线程池、协程
python基础⑮-网络编程socket
python基础⑯-网络编程socket进阶

IF判断

if 三种常用用法

#语法1:
# if 条件:
#     代码体
#     code1
#     code2
#     code3
#     ....

# 语法记忆方法
#   if+空格+条件+冒号
#   tab缩进代码体
#   tab缩进代码体
#   tab缩进代码体
# 键盘Q 左边tab
#  代表电脑需要一个条件进行判断  冒号可以理解成代表计算机要说话了
#  那么通过tab横向换行确定要说的话

tag = True
if tag:
	print('条件满足')

#语法2:
# if 条件:
#     代码体
#     code1
#     code2
#     code3
#     ....
#else:
#     代码体
#     code1
#     code2
#     code3
# tag = 1==3
if tag:
	print('条件满足')

else:
	print('条件不满足')


#语法3:多分枝
# 强调:if的多分枝=但凡有一个条件成立,就不会再往下判断其他条件了
# elif可以有无限个
# if 条件1:
#     code1
#     code2
#     code3
#     ....
# elif 条件2:
#     code1
#     code2
#     code3
#     ....
# elif 条件3:
#     code1
#     code2
#     code3
#     ....
# ........
# else:
#     code1
#     code2
#     code3
#     ....
# 优先级if最高  elif 依次从上往下 else
# 注意必须要有if

# 如果:成绩>=90,那么:优秀
#
# 如果成绩>=80且<90,那么:良好
#
# 如果成绩>=70且<80,那么:普通
#
# 其他情况:很差
score = int(input('>>>'))
if score>=90:
    print('优秀')
elif score >=80:
    print('良好')
elif score >=70:
    print('普通')
else:
    print('很差')

在这里插入图片描述
在这里插入图片描述

IF与逻辑运算配合

# if 判断条件加上逻辑运算符
cls = 'human'
sex = 'female'
age = 18
if cls == 'human' and sex =='female' and age >16 and age <22:
    print('开始表白....以下省略一万字')
else:
    print('阿姨好')
# 三目运算  一行代码写if   else
#    满足条件的结果 if  条件   else  不满足条件的结果
# 只能对if ... else
a=6
print('满足条件') if a>8 else print('不满足条件')

在这里插入图片描述

嵌套if

# if 嵌套
# 语法
# if 条件:
#     code1
#     code2
#     code3
#     if 条件:
#           code1
#           code2
#           code3
#     else:
#           code1
#           code2
#           code3
# else:
#     code1
#     code2
#     code3
cls = 'human'
sex = 'female'
age = 18
#外面的if和里面的if要同时满足才能执行里面的if
if cls == 'human' and sex =='female' and age >16 and age <22:
    print('开始表白....以下省略一万字')
    is_success = input('女孩输入我愿意')
    if is_success =='我愿意':
        print('在一起')
    else:
        print('我逗你玩呢')
else:
    print('阿姨好')

在这里插入图片描述

逻辑运算

#逻辑运算and or not
# and 与:连接左右两个条件,只有在两个条件同时成立的情况下最终结果才为True
# 快速判断方法
# 全部都是and的情况下,如果判断到位假后面都是and就没必要看了,就是假
# 要求全部都是真才是真
name ='micheal'
num = 20
print(num > 18 and 1>3 and name =='micheal' and num <26)
# or 或:连接左右两个条件,但凡有一个条件成立最终结果就为True
# 快速判断方法
# 全部都是or的情况下,如果判断到位真后面都是or就没必要看了,就是真
# 全是假才是假
print(1>3 or 1==1 or 'x'=='y' or 2>4)
# not 非
print(not 1>3)
'''
原理为:
(1) not的优先级最高,就是把紧跟其后的那个条件结果取反,所以not与紧跟其后的条件不可分割

(2) 如果语句中全部是用and连接,或者全部用or连接,那么按照从左到右的顺序依次计算即可

(3) 如果语句中既有and也有or,那么先用括号把and的左右两个条件给括起来,然后再进行运算
'''
print(not 3>1 or 3>1)
#  是先判断not 3>1  而不是 3>1 or 3>1
# not 相当于小学学的乘除法  ,and和or相当于加减法
res=not False and True or False or False or True
print(res)
# #2、最好使用括号来区别优先级,这样别人容易读懂你的代码
res1 =(3>4 and 4>3)or (1==3 and ('x'=='x' or 3>3))
print(res1)

在这里插入图片描述

if并行

score = int(input('>>>'))
if score>=90:
    print('优秀')
if 90>score >=80:
    print('良好')
if 80>score >=70:
    print('普通')
if score<70:
    print('很差')
# elif 与if并列的区别
# if并列是每个if都是独立的  也就是说每一个if条件 是独立的
# 而elif的条件  是在上个if 或者 上一个elif 不满足的条件下执行的条件

在这里插入图片描述

while循环

基本使用和break

'''
1 什么是循环
    循环就是一个重复的过程

2 为何要有循环
    人可以重复的去做某一件事
    程序中必须有一种机制能够控制计算机像人一样重复地去做某一件事


3 如何用循环
'''

# 语法
# while 条件:
#     code1
#     code2
#     code3
# 条件为满足  一直循环
# while + True的情况
# while True:
# #     print('11111')
# #     print('22222')
# 在登录的情况需要循环
# whlie嵌套一个if
db_user = '小王'
db_pwd = '123'
while True:
    input_user = input('请输入用户名')
    input_pwd = input('请输入密码')
    if input_user == db_user and input_pwd ==db_pwd:
        print('登录成功')
        break
    else:
        print('登录失败')
# while + break: break代表结束本层循环
# while + 一个条件范围 不满足这个条件范围就会跳出循环

在这里插入图片描述

debug

# 通过代码体可以结束循环
start = 0
while start<8:
    start +=1
    print(start)
# 断点
# F9 绿色的三角形是调到下一个断点
# F8蓝色朝下的箭头是单步走
# Alt + F9 移动到光标处

在这里插入图片描述
在这里插入图片描述

continue

# while+continue:continue代表结束本次循环
# (本次循环continue之后的代码不在运行),直接进入下一次循环
start = 0
while start <8:
    start +=1
    if start ==4:
        continue
        # 跳过了本次循环,
        # 后面的代码不走了,直接走下一次循环
    # 没有打印4
    print(start)


# 强调:continue一定不要作为循环体的最后一步代码

# while + else # break
# n = 0
# while n <6:
#     n += 1
#     if n == 6:
#         break
#     print(n)
# else:
#     # else的代码会在while循环没有break打断的情况下最后运行
#     print('==============')
# print('--------------')

在这里插入图片描述

if和while一起使用

# 登录取款程序
# 理解while嵌套
user = '小王'
pwd = 123
balance = 5000
tag = True
while True:
    while tag:
        user1 = input('输入用户名')
        if user1 != user:
            print('你输入的用户名错误,请重新输入')
            continue
        pwd1 = int(input('请输入密码'))
        if pwd == pwd1:
            print('登录成功')
            break
            # 跳出本层循环 ,也就是说这一层while循环直接结束
            # 虽然跳出了while tag:
            # 外面的while True还是会进入
        else:
            print('输入密码错误')
    # print('走位后面的代码')
    # print('走位后面的代码')
    # 目的只是为了不进入里面的循环
    # 下面我要写取款程序
    tag = False
    # print('登录成功不会进入tag')
    money = int(input('输入你的取款金额'))
    if balance > money:
        balance = balance -money
        print('恭喜你取走了%s'%money)
        print('还剩%s'%balance)
        break
    else:
        print('余额不足')

在这里插入图片描述

FOR循环(很重要)

普通遍历列表
# # whlie遍历列表
names = ['小王','小戴','小周','小明']
i = 0
while i < len(names):
    print(names[i])
    i += 1
#
# # for循环遍历列表
for n in names:
    print(n)

在这里插入图片描述

遍历字典
# # for循环遍历字典
namess = {'name1':'小王','name2':'小红','name3':'小明'}
# # 默认遍历key值
for i in namess:
    print(i)

for i in namess.keys():
    print(i)
#
# # 遍历value值
#
for i in namess:
    print(namess[i])
#
for i in namess.values():
    print(i)
# # 遍历键值对
for i in namess.items():
    print(i)

在这里插入图片描述

range 迭代
#
# # for可以不依赖于索引取指,是一种通用的循环取值方式
# # for的循环次数是由被循环对象包含值的个数决定的,而while的循环次数是由条件决定的
#
#
# # range(起始索引,结束索引,步长)
# # range(结束索引,步长) # 相当于起始索引是0
a = range(0,5)
print(type(a))
# # 它是一个迭代器
print(list(a))
# # 为什么不直接变成列表,因为会浪费内存
print(range(0,10000000000000))
# # 一般和for循环连用, 循环一次取一次
# #  range相当于母鸡下蛋 一次下一个  下了0 1 2 3 4 这5个鸡蛋
for i in range(0,5):
    print(i)
# # 步长
for i in range(0,5,2):
    print(i)
# # 虽然结果一样但是列表浪费内存
# #  列表相当于一筐鸡蛋 一次性就是 0 1 2 3 4 这5个鸡蛋
for i in [0, 1, 2, 3, 4]:
    print(i)

names=['小王','小红','小明','小周']
for i in range(0,len(names)):
    len(names)#是得到的列表的索引下标  len(names)这个尾巴舍弃
    print(names[i])

在这里插入图片描述

for循环 break continue

# for + break  或者 加continue
names = ['小红','小王','小戴','小周','小杨']
for n in names:
    if n == '小周':
        # continue
        break
    print(n)

# for+else
#  else的代码会在for循环没有break打断的情况下最后运行
for i in range(0,10):
    if i == 4:
        break
    print(i)
else:
    print('=========')

在这里插入图片描述

for循环打印99乘法表
    
# for循环的嵌套
# 打印9*9乘法口诀表
# i是乘数,j是被乘数

# # print有一个参数end  默认是\n
# print(1,end=' ') # 等价print(1)
# print(1,end=' ')
# print(1,end=' ')
# print(1,end=' ')
# print(1,end=' ')
for i in range(1,10):# 控制9行 #
    # print('这个是%s是i', i)
    for j in range(1,i+1):
        # 控制每一行出现的公式的个数
        # 第1次范围是range(1,2)    i  1      (1,2)    j  1  只循环了一次
        # 第1次范围是range(1,3)    i  2      (1,3)    j  1  j  2  只循环了二次
        # 第1次范围是range(1,4)    i  3      (1,4)    j  1  j  2   j  3 只循环了三次
        # print('这个是%s是j',j)
        # 格式化输出
        print('%s*%s=%s'%(i,j,i*j),end=' ')
    # 乘法口诀表是在小循环结束的时候换行
    print()

在这里插入图片描述

print('=================')
for i in range(9,0,-1):# 控制9行 #
    for j in range(9,9-i,-1):
        # 控制每一行出现的公式的个数
        # 第1次范围是range(9,0)    i  9      (9,0)    j  9 8 7 6 5 4 3 2 1  只循环了9次
        # 第2次范围是range(9,1)    i  8      (9,1)    j  9 8 7 6 5 4 3 2 只循环了8次
        # 第3次范围是range(9,2)    i  7      (9,2)    j  9 8 7 6 5 4 3 只循环了7次
        print('%s*%s=%s'%(i,10-j,i*(10-j)),end=' ')
    print()

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七层汉堡王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值