Day 05 基本运算符补充和流程控制

今日内容概总结

  • 运算符的补充

    1.成员运算符

    2.身份运算符

  • 流程控制

    if判断

    while循环

    for循环

运算符的补充

成员运算符

in

判断...在...内

eg.

>>>print('o' in 'hello world')  # 字符串可用
True
>>>print('hello' in 'hello world')  
True
>>>print('jason' in ['jason', 'egon', 'kevin'])  # 列表
True
# 字典参与成员运算 只有key参加 value无法参与
>>>print('koala' in {'name': 'koala', 'age': 18})
False
>>>print('name' in {'name': 'koala', 'age': 18})
True

not in

判断...不在...内

eg.

>>>print('a' not in 'hello world')  # 字符串可用
True
>>>print('hello' not in 'hello world')  
False
>>>print('koala' not in ['jason', 'egon', 'kevin'])  # 列表
True
# 同样的,字典参与成员运算 只有key参加 value无法参与
>>>print('koala' not in {'name': 'koala', 'age': 18})
True
>>>print('name' not in {'name': 'koala', 'age': 18})
False

身份运算符

== 仅判断值是否相等

is 判断内存地址是否相等(id)

eg.

>>>l1 = ['koala' , 'yugali']
>>>l2 = ['koala' , 'yugali']
>>>print(l1 == l2 , l1 is l2)
True False

值相等,内存地址不一定相等

内存地址相等,值一定相等

流程控制

前言

代码的三种运行结构:

  • 顺序结构

    代码自上而下依次运行

  • 分支结构 (if 判断)

    代码运行到某个节点之后根据条件的不同执行不同的代码

  • 循环结构 (while循环、for循环)

    代码运行到某个节点之后一直重复执行某一段代码直到结束

if 判断

三个关键字: if elif else

语法:

if  条件1  # 如果满足条件1,就依次运行代码1、代码2、...
    代码1
    代码2
    ...
elif 条件1  #如果不满足条件1,但满足条件2,就依次运行代码3、代码4、...
    代码3
    代码4
    ...
else  # 其他情况就依次运行代码5、代码6、...
    代码5
    代码6
    ...

注意:

代码缩进:在python中使用缩进来表示代码的从属关系,一般情况下我们采取四个空格来表示缩进

被缩进的代码称之为子代码,不是所有的代码都可以拥有子代码

同属于一个关键字的子代码必须要保持相同的缩进量

遇到冒号:下面的代码必缩进

if 实例:

eg.1 单个条件

# 查成绩,如果成绩大于424,为pass,否则为fail
score = input('please input your score>>>' )  # 请用户输入分数
score = int(score)  # 将用户输入的字符串类型定义为整型,才可以比大小
if score > 424 :  # 条件
    print('pass')
else :
    print('fail')
>>>please input your score>>>445
>>>pass

eg.2 多个条件

''' 分数大于90 打印优秀
分数大于80 打印良好
分数大于70 打印一般
分数大于60 打印及格
分数小于60 打印挂科 '''
score = input('please input your score>>>' )
score = int(score)
if score > 90 :
    print('优秀')
elif score > 80 :
    print('良好')
elif score > 70 :
    print('一般')
elif score > 60 :
    print('及格')
else :
    print('挂科')
>>>please input your score>>>67
>>>及格

eg.3 if嵌套

''' 招聘模特系统
   用户输入姓名,年龄,性别,身高,体重
   如果用户输入的年龄小于22岁并且身高大于170并且性别为女,体重小于110,则请求是否x想要了解更多,如果同意则打印Please add WeChat...
       不同意则打印出next one please
   如果用户输入的年龄大于22或者身高小于170,体重大于110,则打印出thanks for participation '''
user_name = input('please input your name>>>' )
user_age = input('please input your age>>>' )
user_gender = input('please input your gender>>>' )
user_height = input('please input your height>>>' )
user_weight = input('please input your weight>>>' )
if int(user_age) < 22 and user_height > '170' and user_gender == 'female' and user_weight < '110':
    print('you are which one we want ,do you want know more for us?(y/n)')
    choice = input('please input your choice>>>')
    if choice == 'y':
        print('Please add WeChat...')
    else :
        print('next one please')
else :
    print('thanks for participation')
>>>please input your name>>>koala 
>>>please input your age>>>18
>>>please input your gender>>>female
>>>please input your height>>>175
>>>please input your weight>>>100
>>>you are which one we want ,do you want know more for us?(y/n)
>>>please input your choice>>>y

while 循环

关键字: while break continue

语法:

while 条件:
     代码1     
     代码2     
     代码3
while的运行步骤:
步骤1:如果条件为真,那么依次执行:代码1、代码2、代码3、......
步骤2:执行完毕后再次判断条件,如果条件为True则再次执行:代码1、代码2、代码3、......,如果条件为False,则循环终止

while 实例:

eg.1

# 用户登录系统的设置,有且仅有三次错误机会
username = "koala"
password = "123"
# 记录错误验证的次数
count = 0
while count < 3:
    inp_name = input("please input your username:")
    inp_pwd = input("please input your password:")
    if inp_name == username and inp_pwd == password:
        print("land successfully")
    else:
        print("incorrect username or password entered!")
        count += 1
>>>please input your username:koala
>>>please input your password:234
>>>incorrect username or password entered!
>>>please input your username:koala
>>>please input your password:456
>>>incorrect username or password entered!
>>>please input your username:koala
>>>please input your password:456
>>>incorrect username or password entered!
>>>
>>>Process finished with exit code 0     

eg.2 break的使用

# 循环打印1-100 到了数字7就结束打印
count = 1
while count < 11:
    if count == 7:
        count += 1
        # 结束此循环
        break
    print(count)
    # 让count自增1
    count += 1

eg.3 continue的使用

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

eg.4 while嵌套

while True:  #第一层循环
    # 1.获取用户的用户名和密码
    username = input('please input your username>>>:')
    password = input('please input your password>>>:')
    # 2.判断用户名和密码是否正确
    if username == 'koala' and password == '123':
        print('land successfully')
        # 第二层循环
        while True:
            command = input('command>>>:')
            if command == 'q':
                break  # 用于结束本层循环,即第二层循环
            print('executing your command:%s'%command)
        break  # 用于结束本层循环,即第一层循环
    else:
        print('incorrect username or password entered!')          

eg.5 全局标识符

flag = True  # 引入一个全局标识符
while flag:
    # 1.获取用户的用户名和密码
    username = input('please input your username>>>:')
    password = input('please input your password>>>:')
    # 2.判断用户名和密码是否正确
    if username == 'koala' and password == '123':
        print('land successfully')
        # 第二层循环
        while flag:
            command = input('command>>>:')
            if command == 'q':
                flag = False   # flag变为False, 所有while循环的条件都变为False,所有循环都结束掉
            print('executing your command:%s'%command)
    else:
        print('incorrect username or password entered!')

for 循环

关键字:for break continue

for循环能够做到的事情while循环都可以做到

但是for循环使用起来比while更加的简单快捷

语法:

for 变量名 in 可迭代对象: # 此时只需知道可迭代对象可以是字符串\列表\字典
    代码1
    代码2
    ...

eg.1

unknown_list = ['koala','yugali', 18 , 123 , [1,2,3]]
for i in unknown_list:  #变量名不知道起什么的时候, 一般都是以i、j、item命名
     print(i)
>>>koala
>>>yugali
>>>18
>>>123
>>>[1, 2, 3]

eg.2 字典

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

eg.3 for 嵌套

# 九九乘法表
for i in range(1,10):  #range简单的看成是一个能够产生一个含有多个元素的列表
    for j in range(1,i+1):
        print('%s*%s=%s'%(j,i,j*i),end=' ')
    print()

range:

range(起始位置,终止位置),顾头不顾尾

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

break 与 continue也可以用于for循环,使用语法同while循环

作业

猜年龄的游戏
1.必写
错误的情况下只能猜三次
正确的情况下直接推出游戏
2.拔高
三次错误之后提示用户三次机会已用完
问他是否继续 如果继续则再给三次机会
如果不继续则直接退出

note1

# c猜年龄的游戏,有且只有三次机会
pass_age = 18
count = 0
while count < 3:
    inp_age = input("please input your guess:")
    if inp_age == pass_age :
        print('you are grate')
    else :
        print("you are a fool")
        count += 1

note 2

上一篇:c语言 8-1


下一篇:C语言 编写函数判断B是不是A的子串