Python成员运算,身份运算和流程控制


成员运算

in 
  #判断……在……里面
    print('a' in 'abcd')  # 字符串判断a是否在abcd里面
    print('you' in 'how are you')  # 这种整体也可以判断
    print('1' in ['1', '2', '3', '4', '5']) # 判断某个元素是否在某个列表里面(后面会用的很频繁)
    print('number1' in 'number1':'1', 'number2':'2', 'number3':'3')  # 字典中value不参与运算,只有key能被找到
not in
  # 取反
  

身份运算

== 判断值是否相等
is 判断内存地址是否相等
  internet_giants1 = ['tencent', 'alibaba', 'bytedance']
  internet_giants2 = ['tencent', 'alibaba', 'bytedance']
# print(id(internet_giants1), id(internet_giants2)) 地址不一样
  print(internet_giants1 == internet_giants2)  # True 
  print(internet_giants1 is internet_giants2)  # False
# 值相等内存地址不一定相等,内存地址一样值一定相等

流程控制

1.顺序结构
  代码自上而下依次运行
2.分支结构
  代码运行到某个节点之后根据条件不同执行不同代码(if判断)
3.循环结构
  代码运行到某个节点之后一直重复执行某一段代码知道代码结束(while,for)

      

分支结构

??必备知识
代码缩进:在python中用代码缩进来表示从属关系
  一般情况下采取四个空格,其实几个空格都可以,只不过约定俗成的四个空格,这也是规范。
  并不是所有代码都有从属代码
  同级别代码要缩进同样的空格
  (小技巧有冒号的代码,下一行代码必然要缩进)
  
‘’‘
if条件:
		条件成立之后才会执行的代码
’‘’  
# 如果年纪大于等于18周岁,打印欢迎进入异世界,如果小于18周岁,打印给爷爬
  boy_age = input('请输入您的实际年龄:')
  age = int(boy_age)
  if age >= 18:  # if判断
      print('欢迎进入异世界~')  # 是否执行取决于上面条件
  else:
      print('给爷爬!')
‘’‘
if条件:
		代码1
    代码2
    ···
else:
		代码1
    代码2
    ···
如果条件成立则走if的字代码
如果条件不成立则走else的字代码
’‘’
# 如果年纪如果小于18周岁,打印给爷爬,大于等于18周岁,打印欢迎进入异世界,如果年纪大于65岁 打印为了您的身体健康请您关闭此网站
  boy_age = input('请输入您的实际年龄:')
age = int(boy_age)
if age < 18:
    print('给爷爬')
elif age >= 18 and age < 65:  # 条件可以是一个也可以是多个
    print('欢迎进入异世界')
elif age >= 65:
    print('为了您的身体健康建议您关闭此网站')
'''
if 条件1:
    代码1
    代码2
    ···
elif 条件2:
    代码1
    代码2
    ···
else:
    代码1
    代码2
    ···
条件1成立 执行if子代码
条件2成立 执行elif子代码
都不成立 执行else子代码
'''
#条件可以可以是一个 也可以是多个

# if嵌套 相亲对象
age = input('请问你今年多大?')
age = int(age)
car = input('有车吗?')
house = input('有房吗?')
is_success = True
if age <= 40 and car == '有' and house == '有':
    print('我们加个微信吧')
    if is_success:
        print('吃饭 看电影')
    else:
        print('你等着嗷')
else:
    print('我临时有事先走了')
# 成绩评判系统
#分数大于90 打印游戏;大于80打印良好;大于70打印一般;大于60打印及格;小于60打印挂科
# 有多个分支,if……if结构会运行一个判断之后还会接着判断;if……elese结构会无法运行每一个;所以应当用if……elif结构
score = input('请输入学生成绩>>>>>>:')
score = int(score)
if score >= 90:
    print('优秀')
elif score >= 80:
    print('良好')
elif score >= 70:
    print('一般')
elif score >= 60:
    print('及格')
elif score < 60:
    print('挂科')
# 用户登录功能
# 1.获取用户的用户名和密码
# 2.判断用户名和密码是否正确
username = input('请输入您的账号:')
password = input('请输入您的密码:')
if username == 'jesse' and password == '123':
    print('登录成功!')
else:
    print('账户名或密码输入错误 请重新输入')
#  根据星期的不同选择做什么事情,周一看电影;周二打游戏;周三冥想;周四瑜伽;周五打篮球;周六和周日游泳
today = input'which day:'
if today == 'Monday'
    print("movie")
elif today == 'Tuseday'
    print('game')
elif today == 'Wednesday'
    print('meditation')
elif today == 'Thursday'
    print('Yoga')
elif today == 'Friday'
    print('basketball')
elif today == 'Saturday' or 'Sunday'
    print('swim')

循环结构

while 循环
while 条件:
    想要重复执行的代码
# 让用户重复输入
while True:
  res = input('已有账号 任意键登陆')
  while True:
    username = input('请输入您的账号:')
    password = input('请输入您的密码:')
    if username == 'jesse' and password == '123':
        print('登录成功!')
        break  #结束离他最近的一个循环 本层循环
    else:
        print('账户名或密码输入错误 请重新输入')
'''
while 条件:
    循环代码1
    循环代码2
    ……
当条件成立,会依次执行子代码,子代码运行结束之后,判断while条件是否成立,成立继续执行,不成立结束运行
'''
# 打印1——10 除了数字5
x = 0
while x < 11:
    if x == 5
        x += 1
        continue
    print(x)
    x += 1
    
while True:
  res = input('已有账号 任意键登陆')
  while True:
    username = input('请输入您的账号:')
    password = input('请输入您的密码:')
    if username == 'jesse' and password == '123':
        print('登录成功!')
        while True:
          cm = input('command:')
          if cm == 'quit':
            break
          print('正在执行:%s'%cm)
    else:
        print('账户名或密码输入错误 请重新输入')
# 全局标识位

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('快结束了')


# 九九乘法表
for i in range(1,10):
    for j in range(1,i+1):
        print('%s*%s=%s'%(i,j,i*j),end=' ')
    print()