332 lines
11 KiB
Python
332 lines
11 KiB
Python
"""
|
||
=================================
|
||
Author: Flora Chen
|
||
Time: 2020/2/18 19:45
|
||
-_- -_- -_- -_- -_- -_- -_- -_-
|
||
=================================
|
||
"""
|
||
|
||
"""
|
||
1、一、输出99乘法表,结果如下:(提示嵌套for循环,参照上课打印三角形的案例)
|
||
"""
|
||
for i in range(1, 10):
|
||
for j in range(1, i + 1):
|
||
print('{} * {} = {}\t'.format(i, j, i * j), end='')
|
||
print()
|
||
|
||
"""
|
||
2、实现剪刀石头布游戏(),提示用户输入要出的拳 :石头(1)/剪刀(2)/布(3)/退出(4) 电脑随机出拳比较胜负,显示 用户胜、负还是平局。
|
||
|
||
运行如下图所示(提示:while循环加条件判断,做判断时建议先分析胜负的情况):
|
||
"""
|
||
|
||
# musen老师代码
|
||
import random
|
||
|
||
print('---石头剪刀布游戏开始---')
|
||
print('请按照下面的提示出拳:')
|
||
li = ['石头', '剪刀', '布']
|
||
while True:
|
||
print('石头【1】/剪刀【2】/布【3】/结束游戏【4】')
|
||
user_num = int(input('请输入你的选项:'))
|
||
r_num = random.randint(1, 3)
|
||
print(r_num)
|
||
if 1 <= user_num <= 3:
|
||
if r_num == user_num:
|
||
print('您的出拳为:{}, 电脑出拳:{},平局'.format(li[user_num - 1], li[r_num - 1]))
|
||
elif (user_num - r_num) == -1 or (user_num - r_num) == 2:
|
||
print('您的出拳为:{}, 电脑出拳:{},您胜利了'.format(li[user_num - 1], li[r_num - 1]))
|
||
else:
|
||
print('您的出拳为:{}, 电脑出拳:{},您输了'.format(li[user_num - 1], li[r_num - 1]))
|
||
elif user_num == 4:
|
||
print('游戏结束!')
|
||
break
|
||
else:
|
||
print('您出拳有误,请按规矩出拳!')
|
||
# --------------------------------------------------------------------------
|
||
while True:
|
||
print('---石头剪刀布游戏开始---')
|
||
print('请按照下面的提示出拳:\n石头【1】/剪刀【2】/布【3】/结束游戏【4】')
|
||
user_hand = int(input('请输入你的选项:'))
|
||
# 根据用户输入的数字,输出用户出拳的象征
|
||
if user_hand == 1:
|
||
user_icon = '石头'
|
||
print('用户出的是:', user_icon)
|
||
elif user_hand == 2:
|
||
user_icon = '剪刀'
|
||
print('用户出的是:', user_icon)
|
||
elif user_hand == 3:
|
||
user_icon = '布'
|
||
print('用户出的是:', user_icon)
|
||
elif user_hand == 4:
|
||
print('游戏结束!')
|
||
break
|
||
else:
|
||
print('您出拳有误,请按规矩出拳!')
|
||
# 根据系统随机输出的数字,输出系统出拳的象征
|
||
system_hand = random.randint(1, 3)
|
||
if system_hand == 1:
|
||
system_icon = '石头'
|
||
print('系统出的是:', system_icon)
|
||
elif system_hand == 2:
|
||
system_icon = '剪刀'
|
||
print('系统出的是:', system_icon)
|
||
elif system_hand == 3:
|
||
system_icon = '布'
|
||
print('系统出的是:', system_icon)
|
||
# 根据用户以及系统的出拳,决定胜负
|
||
if ((user_hand == 1) and (system_hand == 2)) or ((user_hand == 2) and (system_hand == 3)) or (
|
||
(user_hand == 3) and (system_hand == 1)):
|
||
print('您的出拳为:{}, 电脑出拳:{},您胜利了\n'.format(user_icon, system_icon))
|
||
elif user_hand == system_hand:
|
||
print('您的出拳为:{}, 电脑出拳:{},平局\n'.format(user_icon, system_icon))
|
||
|
||
else:
|
||
print('您的出拳为:{}, 电脑出拳:{},您输了\n'.format(user_icon, system_icon))
|
||
|
||
|
||
|
||
"""
|
||
3、通过定义一个计算器函数,调用函数分别提示用户输入数字1,数字2,然后再提示用户选择 : 加【1】 减【2】 乘【3】 除【4】,
|
||
|
||
|
||
根据不同的选择完成不同的计算 ,然后打印结果(提示:函数中加条件判断)。
|
||
"""
|
||
|
||
|
||
def calculate():
|
||
print('欢迎使用计算器!')
|
||
num1 = int(input('请输入数字1:'))
|
||
num2 = int(input('请输入数字2:'))
|
||
cal_way = int(input('请选择计算方式(加【1】 减【2】 乘【3】 除【4】):'))
|
||
if cal_way == 1:
|
||
return num1 + num2
|
||
elif cal_way == 2:
|
||
return num1 - num2
|
||
elif cal_way == 3:
|
||
return num1 * num2
|
||
elif cal_way == 4:
|
||
return num1 / num2
|
||
else:
|
||
return print('您的输入有误')
|
||
|
||
|
||
print('结果是:', calculate())
|
||
|
||
"""
|
||
5、扩展练习题:不用提交,不计入评分(有时间的同学可以做):
|
||
|
||
|
||
学习控制流程时,我们讲了一个登录的案例,现在要求大家通过代码实现一个注册的流程,基本要求:
|
||
|
||
1、运行程序,提示用户,输入用户名,输入密码,再次确认密码。
|
||
|
||
2、判读用户名有没有被注册过,如果用户名被注册过了,那么打印结果该用户名已经被注册。
|
||
|
||
3、用户名没有被注册过,则判断两次输入的密码是否一致,一致的话则注册成功,否则给出对应的提示。
|
||
|
||
4、下面是已注册的两个账户,注册成功的账号密码按下面的形式保存到列表users中
|
||
users = [{"uaer":"py27","pwd":"lemonban"},{"uaer":"py28","pwd":"lemonban2"}]
|
||
|
||
提示:要是有for-else语句才能实现
|
||
"""
|
||
# 运行程序,提示用户,输入用户名,输入密码,再次确认密码
|
||
username = input('请输入用户名:')
|
||
passwd = input('请输入密码:')
|
||
passwd_confirm = input('请再次输入密码:')
|
||
|
||
# 已有的用户列表
|
||
users = [{'user': 'py27', 'pwd': 'lemonban'}, {'user': 'py28', 'pwd': 'lemonban2'}]
|
||
|
||
# 循环遍历用户列表
|
||
for items in users:
|
||
# 判断用户名是否已注册,已注册就提示用户已注册,并且终止循环
|
||
if username == items['user']:
|
||
print('该用户名已经被注册:', username)
|
||
break
|
||
# 用户名未注册,就判断用户两次输入的密码是否一致
|
||
else:
|
||
# 如果一致就将用户信息添加到已有用户列表,并提示用户注册成功
|
||
if passwd == passwd_confirm:
|
||
users.append({'user': username, 'pwd': passwd})
|
||
print('恭喜你!注册成功', users)
|
||
# 如果不一致就提示用户两次输入的密码不一致
|
||
else:
|
||
print('两次输入的密码不一致!')
|
||
|
||
|
||
"""
|
||
4、整理笔记
|
||
|
||
=================================
|
||
Notes
|
||
Author: Flora Chen
|
||
-_- -_- -_- -_- -_- -_- -_- -_-
|
||
=================================
|
||
|
||
******for循环******
|
||
1. 定义
|
||
for i in xxx:
|
||
# 循环体
|
||
|
||
2. 遍历字符串
|
||
示例:
|
||
str1 = 'flora'
|
||
for i in str1:
|
||
print(i)
|
||
|
||
3. 遍历列表
|
||
示例:
|
||
# 当前有10位同学的成绩,在一个列表中,请区分成绩的等级
|
||
li = [90, 78, 56, 89, 65, 80, 74, 34, 89, 100]
|
||
for score in li:
|
||
if 0 < score < 60:
|
||
print('成绩{}:不及格'.format(score))
|
||
elif 60 <= score < 80:
|
||
print('成绩{}:及格'.format(score))
|
||
elif 80 <= score < 90:
|
||
print('成绩{}:优秀'.format(score))
|
||
else:
|
||
print('成绩{}:非常优秀'.format(score))
|
||
|
||
4. 遍历字典
|
||
示例:
|
||
dic1 = {'name': 'flora', 'gender': 'girl', 'age': 18}
|
||
for i in dic1.keys():
|
||
print('遍历字典的键:', i)
|
||
|
||
for i in dic1.values():
|
||
print('遍历字典的值:', i)
|
||
|
||
for i in dic1.items():
|
||
print('遍历字典的键值对:', i)
|
||
|
||
# 遍历字典键值对时,用2个变量分别保存键和值。
|
||
# for i in dic1.items():
|
||
# k, v = i
|
||
# print('遍历字典的键:', k)
|
||
# print('遍历字典的值:', v)
|
||
|
||
for k, v in dic1.items():
|
||
print('遍历字典的键:', k)
|
||
print('遍历字典的值:', v)
|
||
|
||
5. for循环中的break, continue
|
||
示例:
|
||
# 需求一:打印10遍hello python
|
||
for i in range(1, 11):
|
||
print('1: 这是第{}遍: hello python'.format(i))
|
||
|
||
# 需求二:打印到第50遍跳出循环
|
||
for i in range(1, 11):
|
||
print('2: 这是第{}遍: hello python'.format(i))
|
||
if i == 5:
|
||
break
|
||
|
||
# 需求三:第3~5遍不打印
|
||
for i in range(1, 11):
|
||
if 3 <= i <= 5:
|
||
continue
|
||
print('3:这是第{}遍: hello python'.format(i))
|
||
|
||
6. for循环中的高级语法:for -- else
|
||
for对应的else语句,只有当循环是通过break结束的时候,不会执行。其他情况下都会执行。
|
||
示例:
|
||
for i in range(10):
|
||
print('本轮遍历的数据为{}'.format(i))
|
||
else:
|
||
print('for对应的else语句')
|
||
|
||
示例:
|
||
users = [{'user': 123}, {'user': 122}, {'user': 124}]
|
||
user = input('请输入您的账号:')
|
||
for i in users:
|
||
if user == str(i['user']):
|
||
print('用户已存在!')
|
||
break
|
||
else:
|
||
print('用户不存在!')
|
||
# 缺陷:输入1111,会打印3遍:用户不存在
|
||
|
||
for i in users:
|
||
if user == str(i['user']):
|
||
print('用户已存在!')
|
||
break
|
||
else:
|
||
print('用户不存在!')
|
||
|
||
|
||
|
||
******内置函数range()******
|
||
range(n): 默认生成0 ~ n-1的整数序列。对于这个序列,我们可以通过list()转化为列表类型的数据。
|
||
range(n, m):左闭右开,默认生成从n ~ m-1的整数序列。 对于这个序列,我们可以通过list()转化为列表类型的数据。
|
||
range(n, m , k):左闭右开,n初始值,m-1结束值, k步长, 递增或者递减的整数序列。
|
||
默认生成从n ~ m-1,并且间隔k的整数序列。 对于这个序列,我们可以通过list()转化为列表类型的数据。
|
||
|
||
# 示例:
|
||
print(list(range(10))) # 输出结果: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||
print(list(range(1, 10))) # 输出结果: [1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||
print(list(range(2, 8, 2))) # 输出结果: [2, 4, 6]
|
||
|
||
print(list(range(101, 5, -5)))
|
||
# 输出结果: [101, 96, 91, 86, 81, 76, 71, 66, 61, 56, 51, 46, 41, 36, 31, 26, 21, 16, 11, 6]
|
||
|
||
print(list(range(5, 101, 5)))
|
||
# 输出结果: [5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100]
|
||
|
||
|
||
|
||
******元组拆包*****
|
||
示例:
|
||
tu = (111, 222)
|
||
a, b = tu
|
||
print(a, b) # 输出结果:111 222
|
||
|
||
|
||
******函数*****
|
||
1. 常用的内置函数
|
||
type():查看数据的类型
|
||
id(): 查看数据的内存地址
|
||
len():查看数据的长度
|
||
range(): 生成数据
|
||
|
||
2. 函数的定义
|
||
def 函数名():
|
||
# 函数内部的功能代码
|
||
# 函数内部的功能代码
|
||
# 函数内部的功能代码
|
||
|
||
可以将单一的功能封装成一个函数,在需要使用该功能的时候直接调用函数就可以了。
|
||
函数的作用: 封装代码。
|
||
函数的意义:提高代码的重用率。
|
||
函数的命名规范:可以由数字下划线组成,不能使用数字开头;不能使用python关键字,不要和内置函数和模块(第三方模块,官方库)重名。
|
||
函数的命名风格:推荐使用下划线命名法。
|
||
|
||
示例:
|
||
def func(n):
|
||
for i in range(n):
|
||
for j in range(i + 1):
|
||
print('* ', end='')
|
||
print()
|
||
func(5)
|
||
|
||
3. 函数的参数:定义在函数后面的括号中
|
||
定义的参数叫形参,调用函数的时候传入的参数叫实参。
|
||
示例:
|
||
def add_number(a, b):
|
||
print('a+b: ', a + b)
|
||
add_number(3, 5)
|
||
|
||
4. 函数的返回值:return
|
||
# 注意:如果接收到的数据为None, 说明没有返回值
|
||
示例:
|
||
def add_number(a, b):
|
||
return a + b
|
||
res = add_number(3, 5)
|
||
print(res)
|
||
|
||
|
||
|
||
|
||
"""
|