Python_数据类型练习题

数据类型练习:
"""侧重于数据类型"""
01. 买苹果,计算金额并保留两位小数:
price = int(input("苹果的单价:"))
weight = float(input("苹果的重量:"))
money = price * weight
print("买了%d斤苹果, 每斤%.2f元, 需要付%.2f元" % (weight, price, money))

02. 人机猜拳小游戏:
import random

def finger_guessing():
while True:
player = input("请输入您要出的拳 石头(1)/剪刀(2)/布(3):")
computer = random.choice('123')
print("玩家出拳是:%s VS 电脑出的拳是:%s" % (player, computer))
# 比较胜负(玩家 VS 电脑) 1 石头胜剪刀 2 剪刀胜布 3 布胜剪刀
# 满足其中一项胜利规则,玩家胜利
if ((player == '1' and computer == '2')
or (player == '2' and computer == '3')
or (player == '3' and computer == '1')):
print("玩家player胜利")
# 玩家出拳和电脑一样,平局
else:
if player == computer:
print("双方平局!")
# 玩家出拳和电脑不一样,电脑胜利
else:
print("电脑computer胜利")


finger_guessing()

03. 一行代码实现人工智能:
while True: print(input('问:').strip('吗??') + '!')

04. 写一个程序, 对输入的内容做加法识别并计算:
content = input("请输入加法运算式:")
a_list = content.partition("+")
a_int = int(a_list[0]) + int(a_list[2])
print("%s + %s = %s" % (a_list[0], a_list[2], a_int))

05. 写一个程序, 对输入的字符串统计字母和数字出现的次数:
xs_int = 0
zm_int = 0
zf_str = input(">>>")
for i_int in zf_str:
if i_int.isalpha()==True:
zm_int += 1
elif i_int.isdecimal()==True:
xs_int += 1
print(zm_int, xs_int)

06. 随机生成验证码:
def check_code(num=4):
"""随机生成验证码"""
import random
checkcode = ""
for i in range(num):
current = random.randrange(0, num)
if current != i:
temp = chr(random.randint(65, 90))
else:
temp = random.randint(0, 9)
checkcode += str(temp)
return checkcode


cdoe = check_code(6)
print(cdoe)

07. 循环输入字符串,q退出输入, 格式化表格形式输出添加的元素:
'''
fgadfgdas dsfcvar dasfsa
dasfdsaew dfsd hggfhty
fgd gfdgvb hhbdfsfafadfafd
dfd cdsafewaf da
dafw dsfaf dadfq
'''
s1 = ""
while True:
v1 = input("v1>>>")
v2 = input("v2>>>")
v3 = input("v3>>>")
if v1=="q" or v2=="q" or v3=="q":
break
v4 = "{0}\t{1}\t{2}\n".format(v1, v2, v3)
s1 = s1 + v4
print(s1.expandtabs(20)) # 指定以几个字符以断句,遇到制表符用空格补全几个字符

08. 输入一个字符串, 判断输入的字符串是否是整数或小数:
s = input(">>>")
s1 = s.replace("-", "") # 替换掉负号
if s1.isdigit():
print("字符串%s是整数" % s)
else:
if s1.count(".")==1 and not s1.startswith(".") and not s1.endswith("."):
print("字符串%s是小数" % s)
else:
print("字符串%s是不是小数" % s)

09. 校验⽤用户输⼊入的验证码是否合法, 并忽略首尾空格
verify_code = "Coco"
user_verify_code = input("请输入验证码:")
if verify_code.upper() == user_verify_code.upper().strip():
print("验证成功")
else:
print("验证失败")

10. 公鸡5文钱一只, 母鸡3文钱一只, 小鸡3只1文钱, 用100文钱买100只鸡,必须要有公鸡母鸡小鸡, 公鸡母鸡小鸡各多少只:
s1_int = range(1, 21) # 100文钱可以买20只公鸡
s2_int = range(1, 34) # 100文钱可以买33只母鸡
s3_int = range(1, 301) # 100文钱可以买300只小鸡
for i in s1_int:
for j in s2_int:
for v in s3_int:
if i + j + v == 100 and 5 * i + 3 * j + v / 3 == 100:
print("公鸡%s只,母鸡%s只,小鸡%s只" % (i, j, v))

11. 从列表中找到人名coco:
li = ["Tom ", "ale xC", "AbC ", "\rCoco\r\n", " ri TiAn", "Coc", " aqc", "coco\t"]
lst = []
for el in li:
el = el.replace(" ", "").strip()
if (el.startswith("C") or el.startswith("c")) and el.endswith("o"):
lst.append(el)
print(lst)

12. 打码评论中的敏感词汇:
lst = []
li = ["苍老师", "东京热", "武藤兰", "波多野结衣"]
content = input("请输入你的评论:")
for el in li:
if el in content:
content = content.replace(el, "*" * len(el))
lst.append(content)
print(lst)

13. 遍历嵌套列表:
li = [1, 3, 4, "coco", [3, 7, 8, "Angles"], 5, "Cat"]
for e in li:
if type(e) == list: # 判断e的数据类型
for ee in e:
if type(ee) == str:
print(ee.lower())
else:
print(ee)
else:
if type(e) == str:
print(e.lower())
else:
print(e)

14. 把学生成绩录入到一个列表中, 并求平均值, 要求录入的时候要带着学生姓名和成绩例如, 张三_44:
lst = []
while 1:
stu = input("请输入学生的姓名和成绩(姓名_成绩), 输入Q退出录入:")
if stu.upper() == "Q":
break
lst.append(stu)

# 求平均值
sum = 0
for el in lst:
li = el.split("_")
sum += int(li[1])

print(sum / len(lst))

15. 有如下值li= [11,22,33,44,55,66,77,88,99,90], 完善字典{'k1': 大于66的所有值列表, 'k2': 小于66的所有值列表}:
li= [11,22,33,44,55,66,77,88,99,90]
dic = {}
for el in li:
if el > 66:
dic.setdefault("k1", []).append(el) # 1. 新增, 2. 查询
else:
dic.setdefault("k2", []).append(el) # 1. 新增, 2. 查询
print(dic)

16. 购物, 列表套字典实现:
goods = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "手机", "price": 998}
]

for i in range(len(goods)):
good = goods[i]
print(i+1, good['name'], good['price'])

while 1:
content = input("请输入你要买的商品:")
if content.upper() == "Q":
break
index = int(content) - 1 # 索引
if index > len(goods) - 1 or index < 0: # 调试
print("输入有误. 请重新输入:")
continue
print(goods[index]['name'], goods[index]['price'])


17. 用户输入页码翻页输出列表:
li_list = []
for i in range(1, 301):
item = {"k" + str(i):"value" + str(i)}
li_list.append(item)
# print(li_list)
while True:
s1 = input("请输入页码1-30:")
if s1.isdigit():
s1 = int(s1)
for i in li_list[(s1 - 1) * 10:s1 * 10]:
print(i)
else:
print("不能输入1-300的其他内容")

18. 字典的嵌套运用:
db_dict = {}
path_list = []
while True:
temp_dict = db_dict
for item in path_list:
temp_dict = temp_dict[item]
print("当节点的所有子节点:", list(temp_dict.keys()))

choice = input("1:添加节点;2:查看节点(q退出/b返回上一级)\n>>>")
if choice == "1":
name = input("请输入要添加节点名称:")
if name in temp_dict:
print("节点已存在")
else:
temp_dict[name] = {}
elif choice == "2":
name = input("请输入要查看节点名称:")
if name in temp_dict:
path_list.append(name)
else:
print("你输入的节点名称不正确")
elif choice.lower() == "b":
if path_list:
path_list.pop()
elif choice.lower() == "q":
break
else:
print("你输入的不正确。。。")

19. 实现一个整数加法计算器, 如用户输入:5+8+7....(最少 输入两个数相加)将最后的计算结果添加到此字典中(替换None):
dic={'最终计算结果':None}
content = input('请输入内容:').strip() # 5+8+7
lst = content.split("+")
sum = 0
for el in lst:
sum = sum + int(el.strip())
dic['最终计算结果'] = sum
print(dic)

20. 已知列表li = [11,22,33,44,55,77,88,99,90], 组合成字典{'k1': 小于66值, 'k2': 大于66值}:
li = [11,22,33,44,55,77,88,99,90]
result = {}
for row in li:
if row < 66:
l = result.get("k1") # 上来就拿k1
if l == None: # k1不存在. 没有这个列表
result["k1"] = [row] # 创建一个列表扔进去
else: # k1如果存在
result['k1'].append(row) # 追加内容
else:
l = result.get("k2") # 上来就拿k2
if l == None: # k1不存在. 没有这个列表
result["k2"] = [row] # 创建一个列表扔进去
else: # k1如果存在
result['k2'].append(row) # 追加内容
print(result) # {'k1': [11, 22, 33, 44, 55], 'k2': [77, 88, 99, 90]}

21. 数据处理,将列表转字典,去重:
user_list=[
{"name": "coco", "hobby": "动漫"},
{"name": "coco", "hobby": "音乐"},
{"name": "coco", "hobby": "学习"},
{"name": "angels", "hobby": "看书"},
{"name": "angels", "hobby": "游戏"},
]


def hobby(name):
hobby_set = set()
for i_dic in user_list:
if i_dic["name"] == name:
hobby_set.add(i_dic["hobby"])
return hobby_set


def main(user_list):
name_set = set()
user_dic = dict()
for i in user_list:
name_set.add(i["name"])
print(name_set) # {'coco', 'angels'}
for name in name_set:
user_dic[name] = hobby(name)

print(user_dic) # {'coco': {'音乐', '学习', '动漫'}, 'angels': {'游戏', '看书'}}


main(user_list)

转载于:https://www.cnblogs.com/tangxuecheng/p/11216308.html

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值