python练习
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python练习,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含7225字,纯文字阅读大概需要11分钟。
内容图文
![python练习](/upload/InfoBanner/zyjiaocheng/832/cbb170771969430791f90370a836be86.jpg)
流程控制
'''
1.
用if分支完成猜数字游戏
-- 先通过键盘输入一个数字算作出题
-- 在键盘输入答案
-- 正确:猜对 | 误差3以内:接近了 | 误差外小值:太小 | 误差外大值:太大
'''
quest = int(input("输入一个数字完成出题:"))
answer = int(input('输入你的答案:'))
error = quest - answer
if quest == answer:
print('猜对')
elif -3 < error < 3:
print('接近了')
elif error > 3:
print('太大了')
elif error < 3:
print('太小了')
'''
2.
添加循环,让第1题可以循环完成多次猜字游戏
-- 一次循环完成一次出题和猜题
-- 当出题输入Q或q时结束游戏
'''
while True:
#要求出题输入q退出,所以出题的这个变量值quest必须是字符串
quest = input("输入一个数字完成出题,输入q|Q退出:")
end = ['q', 'Q']
if quest in end:
break
# 出题的变量之前已经定义了字符串,接下来要做的都是算数运算,所以不管是出题输入的值还是答案都要转换成数字
quest=int(quest)
answer = int(input('输入你的答案:'))
error = quest - answer
if quest == answer:
print('猜对')
break
elif -3 < error < 3:
print('接近了')
elif error > 3:
print('太大了')
elif error < 3:
print('太小了')
'''
3.
在第二题基础上,完成一次出题可以最多进行三次猜题
-- 一次出题,进入猜题,猜对进入下一次出题
-- 猜错进入下一次猜题,最多错三次,三次全错自动进入下一次出题
'''
while True:
quest = input("输入一个数字完成出题,输入q|Q退出:")
end = ['q', 'Q']
if quest in end:
break
# 先定义一个计数器,目的是为了统计输入错误的次数,当计数器为3,则结束循环,进行上一层循环继续出题
count = 1
while count <= 3:
quest = int(quest)
answer = int(input('输入你的答案:'))
error = answer - quest
if error == 0:
print('猜对')
break
elif -3 < error < 3:
print('接近了')
elif error > 3:
print('太大了')
elif error < 3:
print('太小了')
count += 1
#如果循环结束,表示count已经大于3,提供用户返回信息
else:
print()
print('你已输错3次,请重新输入')
列表的操作
'''
1.循环输入10条信息,如果输入的是自然数,就存放到名为nums的列表中,如果不是,就存放到名为strs列表中
-- nums中存放的数据都是int类型
-- strs中存放的都是字符串类型
-- 最终打印两个列表以及个列表的中元素的个数
'''
(方法一)
nums = []
strs = []
count = 1
while count <= 10:
res = input('请输入正整数或者字符串 ')
if res.isdigit() == True:
nums.append(int(res))
else:
strs.append(res)
count += 1
print('nums变量中存放的元素有%s个,%s' % (len(nums), nums))
print('strs变量量中存放的元素有%s个,%s' % (len(strs), strs))
(方法二)
for i in range(10):
info = input('请输入10条信息 ')
if info.isdigit():
nums.append(int(info))
else:
strs.append(info )
print(nums)
print(strs)
'''
2.完成用list存放注册用户信息的功能:可以循环来完成注册,先输入账号,再输入密码,密码需要二次确认,两次密码一致才能往下进行注册,
如果不一致返回重新注册输入
-- 账号输入Q或q,退出整个程序
-- 账号成功,进行两次密码验证,验证失败直接进入下一次注册
-- 账号必须全部是英文字母3个长度及以上,密码必须是英文或数字3个长度及以上
-- 两次密码验证成功,就注册信息存放到列表中
-- 假设注册成功了Owen,123 | Zero,000两个信息,最终形成的注册结果为
[['Owen', '123'], ['Zero', '000']]
'''
list_1 = [] # 先定义一个人空列表,空列表一定要写在while循环外面,如果写在while循环里面,则每次赋值回到while循环,则都会被重新赋值成空列表
while True:
user = input('请输入账号,输入q/Q退出程序 ')
if user == 'q' or user == 'Q':
break
if not user.isalpha() and len(user) >= 3: # 将满足条件的筛选出来并取反,那么接下来的条件都是成立的
print('注册不成功,请重新输入用户名')
while True:
pwd = input('请输入密码 ')
if pwd:
re_pwd = input('请再次输入密码 ')
if pwd == re_pwd:
info = [user, pwd]
list_1.append(info)
print('注册成功')
break
else:
print('两次密码输入不一致,请重新输入密码 ')
continue
print(list_1)
字典的操作
'''
1.将几个指定字符串形成目标字符串
指定字符串:'I' | 'am' | 'you are a good boy' | '!'
目标字符串:'I am a good boy!'
'''
first = 'I'
second = 'am'
third = 'you are a good boy'
fourth = '!'
third = third[8:]
print('%s %s %s%s' % (first, second, third,fourth))
'''
2.写出你可以想到的所有按要求格式输出列表的解决方案
指定列表:[1, 2, 3, 4, 5]
输出结果:[5, 4, 3, 2, 1]
'''
list1 = [1, 2, 3, 4, 5]
# # (一)
print(sorted(list1, reverse=True))
# # (二)
print(list(reversed(list1)))
# # (三)
print(list1[::-1])
# # reverse方法和sort方法需要先执行再输出
#
# # (四)
list1.reverse()
print(list1)
# (五)
list1.sort(reverse=True)
print(list1)
'''
3.遍历删除包含 Bi词汇(脏话) 的目标
指定列表:['Owen', 'BobSB', 'SBen', 'ZeroS', 'OSBO']
输出结果:['Owen', 'ZeroS']
'''
#方法1: 匹配符合条件的,添加到新的列表(推荐)
list1 = ['Owen', 'BobSB', 'SBen', 'ZeroS', 'OSBO']
list2 = []
source=['Owen', 'BobSB', 'SBen', 'ZeroS', 'OSBO']
res=[]
for i in source:
if 'SB' not in i:
res.append(i)
print(res)
#反向遍历列表,不符合条件的,删除
for i in source[::-1]:
if 'SB' in i:
source.remove(i)
print(source)
'''
4.求得指定元组中是字符串数据的总个数
指定元组:(1, 2, '3', '4', 5, '6', 7, 8, 9)
求的结果:3
'''
#方法1
ls = (1, 2, '3', '4', 5, '6', 7, 8, 9)
list1 = []
for i in ls:
if isinstance(i, str):
list1.append(i)
print(len(list1))
#方法2
ls = (1, 2, '3', '4', 5, '6', 7, 8, 9)
list1 = []
count = 0 #符合条件的自加1,起到计数的作用
for i in ls:
if isinstance(i, str):
list1.append(i)
count += 1
print('字符串个数为%s' % count)
'''
5.求得指定元组中 str数据的个数 与 int数据的个数,存储到字典存放
指定元组:(1, 2, '3', '4', 5, '6', 7, 8, 9)
求的结果:{'str': 3, 'int': 6}
'''
# 方法1
tuple_refer=(1, 2, '3', '4', 5, '6', 7, 8, 9)
dic={}
inter=[]
string=[]
for i in tuple_refer:
if isinstance(i,int):
inter.append(i)
else:
string.append(i)
num_int=len(inter)
num_str=len(string)
dic['str']=num_str
dic['int']=num_int
print(dic)
#方法2
#定义计数器
count_str = 0
count_int = 0
#将元组转换为列表
tuple_refer = (1, 2, '3', '4', 5, '6', 7, 8, 9)
tuple_list = list(tuple_refer)
#判断字符串或者数字,如果判断到,就用各自的计数器自增1
for i in tuple_list:
if isinstance(i, str):
count_str += 1
else:
count_int += 1
print(dict({'str': count_str, 'int': count_int}))
#方法3
tuple_refer = (1, 2, '3', '4', 5, '6', 7, 8, 9)
#使用fromkeys方法为空字典定义key,默认值都设置为0
res = {}.fromkeys(['str', 'int'], 0)
#判断如果是字符串,就在'str'这个key的值加1
for i in tuple_refer:
if isinstance(i, str):
res['str'] += 1
else:
res['int'] += 1
print(res)
'''
6.列表数据的去重
指定列表:[3, 1, 2, 2, 1, 5, 9, 7]
求的结果:[3, 1, 2, 5, 9, 7]
'''
#方法1
list1=[3, 1, 2, 2, 1, 5, 9, 7]
print(list(set(list1)))
#方法2
-----> 定义一个新列表,然后遍历list1,将list1中的值取出来,判断是否包含在新列表list1_new中,如果不包含,就执行插入操作
list1=[3, 1, 2, 2, 1, 5, 9, 7]
list1_new=[]
for i in list1:
if i not in list1_new:
list1_new.append(i)
print(list1_new)
#方法3
list1 = [3, 1, 2, 2, 1, 5, 9, 7]
dic = {}.fromkeys(list1, 0)
dic_keys = dic.keys()
res=list(dic_keys)
print(res)
'''
7.回答字典能不能按索引取值?能不能切片?能去求长度?能否字典与字典拼接?成员运算判断的是key还是value
'''
# 字典不能按索引取值和切片
#字典可以求长度
#字典不可以进行拼接
dic = {'name': 'bob', 'age': 18}
dic3 = {'name2': 'bobbb', 'sex': 'male'}
res=dic.copy()
res.update(dic3)
print(res)
print(len(res))
#成员运算判断key
print('name' in res)
print('name2' in res)
print('age' in res)
print('sex' in res)
'''
8.修改所有以 Bi词汇(脏话) 开头或结尾的字符串,将 Bi词汇 替换为**
指定列表:['Owen', 'BobSB', 'SBen', 'ZeroS', 'OSBO']
运行结果:['Owen', 'Bob**', '**en', 'ZeroS', 'OSBO']
'''
source = ['Owen', 'BobSB', 'SBen', 'ZeroS', 'OSBO']
for v in source:
if v.startswith('SB') or v.endswith('SB'):
index = source.index(v)
source[index] = source[index].replace('SB', '**') #修改source列表里切片里的一个字符串,列表无法用replace
print(source)
内容总结
以上是互联网集市为您收集整理的python练习全部内容,希望文章能够帮你解决python练习所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。