if判断,循环结构

内容详细

内容回顾

  • 与用户交互
输入
	input
    在python3上述关键字获取到的用户输入都是字符串类型
    在python2上述关键字获取到的用户输入需要用户自己指定类型
    	raw_input等价于python3里面的input
输出
	print
    可以连续打印多个值 逗号隔开即可

  • 格式化输出
%s  任意类型占位符
	'my name is %s'%'jason'
    'my name is %s my age is %s'%('jason',123)
%d  数字系列
	'%08d'
  • 运算符
* ```python
  赋值运算符
  	name = 'jason'
  算术运算符
  	+ - * / // % **
      # 有些数据类型也支持局部算术运算符
  比较运算符
  	== !=
      # A-Z  65-90		a-z  97-122
  逻辑运算符
  	and or not
      # 三者混用有优先级的区别 但是不需要记忆 使用括号即可
  增量赋值
  	x -= 1
      x += 1
      x *= 1
      x /= 1
  链式赋值
  	x = y = z = 1
  交叉赋值
  	x, y = y, x
  解压赋值
  	x,y = [1,2]
      # 1.正常使用要保证左右两边变量名与值个数相等
      # 2.非正常情况下可以使用*打破个数限制

今日内容概要

  • 成员运算
  • 身份运算
  • 流程控制(重点)
if判断

while循环

for循环

今日内容详解

  • 成员运算
in
	判断在...里面
not in
	取反
print('a' in 'hello world aaa')
print('hello' in 'hello world aaa')
not 'lili' in ['jack','tom','robin']
'lili' not in ['jack','tom','robin']
# 字典参与成员运算 只有key参加 value无法参与
print('jason' in {'name': 'jason', 'pwd': 123})
print('name' in {'name': 'jason', 'pwd': 123})

    
    
  • 身份运算
  仅仅判断值是否相等   
is	判断内存地址是否相等(id)

l1 = ['jason', 'egon', 'kevin']
l2 = ['jason', 'egon', 'kevin']
# print(id(l1),id(l2))
print(l1 == l2)  # True
print(l1 is l2)  # False
"""
值相等内存地址不一定相等
内存地址相等值一定相等
"""
  • 流程控制
顺序结构
	代码自上而下依次运行(我们之前所写的代码都是顺序结构)
分支结构
	代码运行到某个节点之后根据条件的不同执行不同的代码(if判断)
循环结构
	代码运行到某个节点之后一直重复执行某一段代码直到结束(while、for)

分支结构

  • 什么是分支结构?

分支结构就是根据条件判断的真假去执行不同分支对应的子代码

  • 为什么要用分支结构

因为生活中有的时候需要我们根据条件来决定要做的事情,所以我们要求程序中要有相应的机制来控制计算机具备人的判断能力

  • 如何使用分支结构

1、if语法

完整的if语法如下:

 if 条件1: # 如果条件1的结果为True,就依次执行:代码1、代码2,......
   代码1
    代码2
    ......
elif 条件2: # 如果条件2的结果为True,就依次执行:代码3、代码4,......
   代码3
    代码4
    ......
elif 条件3: # 如果条件3的结果为True,就依次执行:代码5、代码6,......
   代码5
    代码6
    ......
else:     # 其它情况,就依次执行:代码7、代码8,......
    代码7
    代码8
    ......
    """
    #1、python用相同缩进(4个空格表示一个缩进)来标识一组代码块,同一组代码会自上而下依次运行
    #2、并不是所有的代码都可以拥有子代码截至目前为止只有if可以拥有子代码
    #3、条件可以是任意表达式,但执行结果必须为布尔类型
    #4、在if判断中所有的数据类型也都会自动转换成布尔类型
       # 4.1、None,0,空(空字符串,空列表,空字典等)三种情况下转换成的布尔值为False
       # 4.2、其余均为True
    ps:可以简单的记忆遇到冒号下面的代码必缩进
    """
 

2、应用:

# 如果:女人的年龄>30岁,那么:叫阿姨
# age_of_girl=31
# if age_of_girl > 30:
    #print('阿姨好')
 # 如果:女孩子的年龄小于30岁 打印小姐姐 否则打印认错人了
# girl_age = 68
# if girl_age < 30:
#     print('小姐姐好')
# else:
#     print('认错人了')
"""
if 条件:
    代码1
    代码2
    ...
else:
    代码1
    代码2
    ...
如果条件成立则走if的子代码
如果条件不成立则走else的子代码
"""
# 如果:成绩>=90,那么:优秀
# 如果成绩>=80且<90,那么:良好
# 如果成绩>=70且<80,那么:普通
# 其他情况:很差
# score=input('>>: ')
# score=int(score)
# if score >= 90:
   # print('优秀')
# score >= 80:
    # print('良好')
# elif score >= 70:
    # print('普通')
# else:
    # print('很差')
"""
if 条件1:
    代码1
    代码2
    ...
elif 条件2:
    代码1
    代码2
    ...
else:
    代码1
    代码2
    ...
    条件1成立 执行if的子代码 elif和else都不执行
    条件2成立(说明条件1没有成立) 执行elif的子代码 if和else都不执行
    如果条件都不成立 则走最后的else子代码 if和elif都不执行
    elif可以写多个
"""

3、补充:

# 条件可以是一个 也可以是多个连接
# 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嵌套
# gender = 'female'
# age = 18
# height = 165
# is_beautiful = True
# is_success = True
# if gender == 'female' and age < 22 and height > 155 oand is_beautiful:
#     print('能否加个微信认识一下?')
#     if is_success:
#         print('吃饭 散步 看电影 交流')
#     else:
#         print('你是个好人')
# else:
#     print('我有事先走了')


# 2.用户登录功能
# 1.获取用户的用户名和密码
# username = input('username>>>:')
# password = input('password>>>:')
# # 2.判断用户名和密码是否正确
# if username == 'jason' and password == '123':
#     print('老板好 来宾三位!')
# else:
#     print('去你妹的')


# 3.根据星期的不同做出不同的动作  周一到周五划水  周六周日躺平
# today = input('周几>>>:')
# if today in ('一','二','三','四','五'):
#     print('划水')
# elif today in ('六','七'):
#     print('躺平')
# else:
#     print('见了鬼了')

循环结构

  • 什么是循环结构

循环结构就是重复执行某段代码块

  • 为什么要用循环结构

人类某些时候需要重复做某件事情,所以程序中必须有相应的机制来控制计算机具备人的这种循环做事的能力

  • 如何使用循环结构

1、while循环语法

python中有while与for两种循环机制,其中while循环被称之为条件循环,语法如下:

# while 条件:
     # 代码1     
     # 代码2     
     # 代码3
#while的运行步骤:
# 步骤1:如果条件为真,那么依次执行:代码1、代码2、代码3、......
# 步骤2:执行完毕后再次判断条件,如果条件为True则再次执行:代码1、代码2、代码3、......,如果条件为False,则循环终止
# while True:
#     res = input('start>>>:')
#     while True:
#         # 1.获取用户的用户名和密码
#         username = input('username>>>:')
#         password = input('password>>>:')
#         # 2.判断用户名和密码是否正确
#         if username == 'jason' and password == '123':
#             print('登录成功')
#             # 结束循环
#             break  # 结束离它最近的一个循环  本层循环
#         else:
#             print('用户名或密码错误')
#     break


# 循环打印1-10 除了数字7
# count = 1
# while count < 11:
#     if count == 7:
#         count += 1
#         # 跳过本次循环 开始下一次循环
#         continue
#     print(count)
#     # 让count自增1
#     count += 1


# count = 1
# while count < 11:
#     if count == 7:
#         break
#     print(count)
#     # 让count自增1
#     count += 1
# else:
#     print('当while没有被break主动结束的情况下自动结束了 则会走else')

2、while循环实例

1 # while+break的使用
#使用了while循环后,代码确实精简多了,但问题是用户输入正确的用户名密码以后无法结束循环,那如何结束掉一个循环呢?这就需要用到break了!

# username = "jason"
# password = "123"
# # 记录错误验证的次数
# count = 0
# while count < 3:
#     inp_name = input("请输入用户名:")
#     inp_pwd = input("请输入密码:")
#     if inp_name == username and inp_pwd == password:
#         print("登陆成功")
#         break # 用于结束本层循环
#     else:
#         print("输入的用户名或密码错误!")
#         count += 1

2 # while循环嵌套+break
#如果while循环嵌套了很多层,要想退出每一层循环则需要在每一层循环都有一个break
# username = "jason"
# password = "123"
# count = 0
# while count < 3:  # 第一层循环
#     inp_name = input("请输入用户名:")
#     inp_pwd = input("请输入密码:")
#     if inp_name == username and inp_pwd == password:
#         print("登陆成功")
#         while True:  # 第二层循环
#             cmd = input('>>: ')
#             if cmd == 'quit':
#                 break  # 用于结束本层循环,即第二层循环
#             print('run <%s>' % cmd)
#         break  # 用于结束本层循环,即第一层循环
#     else:
#         print("输入的用户名或密码错误!")
#         count += 1

3 # while循环嵌套+tag的使用
#针对嵌套多层的while循环,如果我们的目的很明确就是要在某一层直接退出所有层的循环,其实有一个窍门,就让所有while循环的条件都用同一个变量,该变量的初始值为True,一旦在某一层将该变量的值改成False,则所有层的循环都结束
# tag = True
# while tag: 
#     inp_name = input("请输入用户名:")
#     inp_pwd = input("请输入密码:")
#     if inp_name == username and inp_pwd == password:
#         print("登陆成功")
#         while tag:  
#             cmd = input('>>: ')
#             if cmd == 'quit':
#                 tag = False  # tag变为False, 所有while循环的条件都变为False 
#                 break
#             print('run <%s>' % cmd)
#         break  # 用于结束本层循环,即第一层循环
#     else:
#         print("输入的用户名或密码错误!")
#         count += 1
4 # while+else的使用
#在while循环的后面,我们可以跟else语句,当while 循环正常执行完并且中间没有被break 中止的话,就会执行else后面的语句,所以我们可以用else来验证,循环是否正常结束
# count = 0
# while count <= 5 :
#     count += 1
#     print("Loop",count)
# else:
#     print("循环正常执行完啦")
# print("-----out of while loop ------")
# 输出
# Loop 1
# Loop 2
# Loop 3
# Loop 4
# Loop 5
# Loop 6
# 循环正常执行完啦   #没有被break打断,所以执行了该行代码
# -----out of while loop ------
# 如果执行过程中被break,就不会执行else的语句
# username = "jason"
# password = "123"
# count = 0
# 
# #count = 0
# while count <= 5 :
#     count += 1
#     if count == 3:
#         break
#     print("Loop",count)
# else:
#     print("循环正常执行完啦")
# print("-----out of while loop ------")
# 输出
# Loop 1
# Loop 2
# -----out of while loop ------ #由于循环被break打断了,所以不执行else后的输出语句
5 # while+continue的使用
# 打印1到10之间,除7以外的所有数字
# number=11
# while number>1:
#     number -= 1
#     if number==7:
#         continue # 结束掉本次循环,即本次循环continue之后的代码都不会运行了,而是直接进入下一次循环
#     print(number)

for循环

for循环能够做到的事情while循环都可以做到
但是for循环使用起来比while更加的简单快捷
# name_list = ['jason','egon','kevin','tony']
# print(len(name_list))  # 4
# 使用while循环将列表中的元素依次打印出来
# 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 i in 'hello world':  # for循环字符串 将单个单个的字符依次赋值给变量名i
#     print(i)


# for i in {'name':'jason','pwd':123}:  # for循环字典 指挥依次拿到字典的key
#     print(i)


# 打印0-10
# count = 0
# while count < 11:
#     print(count)
#     count += 1

# for i in range(11):  # range简单的看成是一个能够产生一个含有多个元素的列表
#     print(i)

# for i in range(1,11):  # range简单的看成是一个能够产生一个含有多个元素的列表
#     print(i)
"""
range(起始位置,终止位置)
    顾头不顾尾
"""

"""
range
在python3中 类似于是一个老母猪 
    需要值的时候才会给你 不需要的时候就不给    节省内存
在python2中 直接生成一个列表
    不节省内存
    xrange(10)  等价于 python3里面的range()
"""



# break
# for i in [1,2,3,4,5,6]:
#     if i == 4:
#         break  # 结束本层for循环  与while+break一致
#     print(i)

# continue
# 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('快结束了')
posted @ 2021-06-02 15:05  堇雪月寒风  阅读(155)  评论(0)    收藏  举报
Live2D