2021-6-1python学习日志

昨日内容回顾

  • 与用户交互
    	1.输入 input
    		在python3上述关键字获取到的用户输入都是字符串类型。
    	    在python2上述关键字获取到的用户输入需要用户自己指定类型。
    	    raw_input等价于python3里面的input2.输出 print
    		可以连续打印多个值,逗号隔开即可。
    
  • 格式化输出
    	1.%s 任意类型占位符
    		'my name is %s'%'wkj'
        	'my name is %s my age is %s'%('wkj',22)
    	2.%d  数字系列
    		'%08d'
    
  • 运算符
    	1.赋值运算符
    		name = 'wkj'
    	2.算术运算符
    		+ - * / // % **
    	    有些数据类型也支持局部算术运算符
    	3.比较运算符
    		== !=
    	    A-Z  65-90		a-z  97-122
    	4.逻辑运算符
    		and or not
    	    三者混用有优先级的区别 但是不需要记忆 使用括号即可
    	5.增量赋值
    		x -= 1
    	    x += 1
    	    x *= 1
    	    x /= 1
    	6.链式赋值
    		x = y = z = 1
    	7.交叉赋值
    		x, y = y, x
    	8.解压赋值
    		x,y = [1,2]
    	    1.正常使用要保证左右两边变量名与值个数相等
    	    2.非正常情况下可以使用*打破个数限制
    

今日内容概要

  • 成员运算
  • 身份运算
  • 流程控制(重点)
    	1.if判断
        2.while循环
        3.for循环
    

今日内容详情

  • 成员运算

    	1.in 
    		判断在...里面
    	2. not in
    		取反
    	print('a' in 'hello world aaa')
    	print('hello' in 'hello world aaa')
    	print('wkj' in ['wkj', 'egon', 'kevin'])
    	
    	# 字典参与成员运算 只有key参加 value无法参与
    	print('wkj' in {'name': 'wkj', 'pwd': 123})
    	print('name' in {'name': 'wkj', 'pwd': 123})
    
  • 身份运算

    	1.== 仅仅判断值是否相等
    	2.is 判断内存地址是否相等(id)
    	
    	l1 = ['wkj', 'egon', 'kevin']
    	l2 = ['wkj', 'egon', 'kevin']
    	# print(id(l1),id(l2))
    	print(l1 == l2)  # True
    	print(l1 is l2)  # False
    	"""
    	值相等内存地址不一定相等
    	内存地址相等值一定相等
    	"""
    
  • 流程控制

    	1.顺序结构
    		代码自上而下依次运行(我们之前所写的代码都是顺序结构)
    	2.分支结构
    		代码运行到某个节点之后根据条件的不同执行不同的代码(if判断)
    	3.循环结构
    		代码运行到某个节点之后一直重复执行某一段代码直到结束(whilefor)
    
  • 分支结构

    	"""
    	必备知识---代码缩进
    	1.在python中使用缩进来表示代码的从属关系,一般情况下我们采取四个空格来表示缩进(推荐)。
    	2.并不是所有的代码都可以拥有子代码,截至目前为止只有if可以拥有子代码。
    	3.同属于一个关键字的子代码必须要保持相同的缩进量。
    		
    	ps:可以简单的记忆遇到冒号下面的代码必缩进
    	"""
    	例一、如果女孩子的年龄小于30岁,打印小姐姐。
    	girl_age = 58
    	if girl_age < 30:  # if判断
    	     print('小姐姐好')
    	"""
    	if 条件:
    	   条件成立之后才会执行的代码
    	"""
    	
    	例二、如果女孩子的年龄小于30岁,打印小姐姐,否则打印认错人了。
    	girl_age = 68
    	if girl_age < 30:
    	    print('小姐姐好')
    	else:
    	    print('认错人了')
    	"""
    	if 条件:
    	    代码1
    	    代码2
    	    ...
    	else:
    	    代码1
    	    代码2
    	    ...
    	如果条件成立则走if的子代码
    	如果条件不成立则走else的子代码
    	"""
    	
    	例三、如果女孩子的年龄小于30岁,打印小姐姐,小于40随打印阿姨我不想努力了 小于50岁大宝贝,否则躺平。
    	girl_age = 28
    	if girl_age < 30:
    	    print('小姐姐')
    	elif girl_age < 40:
    	    print('阿姨我不想努力了')
    	elif girl_age < 50:
    	    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可以写多个
    	"""
    
  • 分支结构补充

    	条件可以是一个,也可以是多个连接。
    		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 and is_beautiful:
    		    print('能否加个微信认识一下?')
    		    if is_success:
    		        print('吃饭 散步 看电影 交流')
    		    else:
    		        print('你是个好人')
    		else:
    		    print('我有事先走了')
    
    	成绩评判系统
    		"""
    		分数大于90 打印优秀
    		分数大于80 打印良好
    		分数大于70 打印一般
    		分数大于60 打印及格
    		分数小于60 打印挂科
    		"""
    		score = int(input('score>>>:'))
    		if score > 90:
    		    print('优秀')
    		elif score > 80:
    		    print('良好')
    		elif score > 70:
    		    print('一般')
    		elif score > 60:
    		    print('及格')
    		else:
    		    print('挂科')
    
    	例一、用户登录功能
    		1.获取用户的用户名和密码
    		username = input('username>>>:')
    		password = input('password>>>:')
    		# 2.判断用户名和密码是否正确
    		if username == 'wkj' and password == '123':
    		    print('老板好 来宾三位!')
    		else:
    		    print('再见')
    
    	例二、3.根据星期的不同做出不同的动作  周一到周五划水  周六周日躺平
    		today = input('周几>>>:')
    		if today in ('一','二','三','四','五'):
    		    print('划水')
    		elif today in ('六','七'):
    		    print('躺平')
    		else:
    		    print('见了鬼了')
    	
    
  • 循环结构

    	while True:
    	   # 1.获取用户的用户名和密码
    	    username = input('username>>>:')
    	    password = input('password>>>:')
    	    # 2.判断用户名和密码是否正确
    	    if username == 'jason' and password == '123':
    	        print('登录成功')
    	    else:
    	        print('用户名或密码错误')
    	
    	"""
    	while 条件:
    	    循环体代码1
    	    循环体代码2
    	    ...
    	当条件成立的情况下 会依次执行while子代码
    	子代码运行结束之后再次返回到条件处判断条件是否成立 如果成立继续执行
    	如果不成立则结束循环
    	"""
    	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')
    
  • 循环嵌套

    	循环嵌套
    	while True:
    	    # 1.获取用户的用户名和密码
    	    username = input('username>>>:')
    	    password = input('password>>>:')
    	    # 2.判断用户名和密码是否正确
    	    if username == 'jason' and password == '123':
    	        print('登录成功')
    	        # 循环结构
    	        while True:
    	            command = input('command>>>:')
    	            if command == 'q':
    	                break
    	            print('正在执行您的命令:%s'%command)
    	        break
    	    else:
    	        print('用户名或密码错误')
    	
    	
    	全局标志位
    	flag = True
    	while flag:
    	    # 1.获取用户的用户名和密码
    	    username = input('username>>>:')
    	    password = input('password>>>:')
    	    # 2.判断用户名和密码是否正确
    	    if username == 'jason' and password == '123':
    	        print('登录成功')
    	        # 循环结构
    	        while flag:
    	            command = input('command>>>:')
    	            if command == 'q':
    	                flag = False
    	            print('正在执行您的命令:%s'%command)
    	    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()
    
  • 作业

    	"""
    	1.猜年龄的游戏
    	    1.必写
    	        错误的情况下只能猜三次
    	        正确的情况下直接推出游戏
    	    2.拔高
    	        三次错误之后提示用户三次机会已用完
    	        问他是否继续  如果继续则再给三次机会
    	        如果不继续则直接退出
    	"""
    	import random
    	print("---猜年龄游戏---")
    	a = random.randint(1, 100)
    	b = 1
    	flag = True
    	while flag:
    	    x = int(input("请输入1-100之间的数字: "))
    	    if x == a:
    	        print("恭喜!猜对了!")
    	        flag = False
    	    elif b < 3:
    	        b += 1
    	        print("错了!")
    	    else:
    	        print("错了!")
    	        y = input("三次机会已用完,是否再来三次机会?(y/n): ")
    	        while True:
    	            if y == "y":
    	                b = 1
    	                break
    	            elif y == "n":
    	                flag = False
    	                break
    	            else:
    	                y = input("请输入y/n: ")
    		
    
    	自己在想到一些问题并进行完善后:
    	import random
    	print("---猜年龄游戏---")
    	a = random.randint(1, 100)
    	b = 1
    	flag = True
    	while flag:
    	    try:
    	        x = int(input("请输入1-100之间的数字: "))
    	    except:
    	        print("错误,只能输入数字,请重新输入!")
    	    else:
    	        if x > 100 or x < 0:
    	            print("超范围!只能输入1-100之间的整数!")
    	        elif x == a:
    	            print("恭喜!猜对了!")
    	            flag = False
    	        elif b < 3:
    	            b += 1
    	            print("错了!")
    	        else:
    	            print("错了!")
    	            y = input("三次机会已用完,是否再来三次机会?(y/n): ")
    	            while True:
    	                if y == "y":
    	                    b = 1
    	                    break
    	                elif y == "n":
    	                    flag = False
    	                    break
    	                else:
    	                    y = input("只能输入y/n: ")
    
    
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值