Python实战案例02

1、进制转换

十进制是实际应用中最常使用的计数方式,除此之外,还可以采用二进制、八进制或十六进制计数。
本实例要求编写代码,实现将用户输入的十进制整数转换为指定进制的功能。

num = int(input("请输入要转换的数据: "))
change = input("请选择转换进制:二 、八、十、十六 ")
if change == '2':
print(f"进制转换后的数据为:{bin(num)}")
elif change == '8':
print("进制转换后的数据为:%s" % (oct(num)))
elif change == '10':
print("进制转换后的数据为:%d" % (int(num)))
elif change == '16':
print("进制转换后的数据为:{}".format(hex(num)))

2、文本进度条

进度条一般以图形的方式显示已完成任务量和未完成任务量,并以动态文字的方式显示任务的完成度。
本实例要求编写程序,实现如图所示的文本进度条。

import time
incomplete_sign = 50 # .的数量
print('='*23+'开始下载'+'='*25)
for i in range(incomplete_sign + 1):
completed = "*" * i # 表示已完成
incomplete = "." * (incomplete_sign - i) # 表示未完成
percentage = (i / incomplete_sign) * 100 # 百分比
print("r{:.0f}%[{}{}]".format(percentage, completed, incomplete), end="")
time.sleep(0.5)
print(" " + '='*23+'下载完成'+'='*25)

3、敏感词替换

敏感词通常是指带有敏感政治倾向、暴力倾向、不健康色彩的词或不文明的词语,对于文章中出现的敏感词常用的处理方法是使用特殊符号(如“*”)对敏感词进行替换。
本实例要求编写代码,实现具有替换敏感词功能的程序。

sensitive_character = '你好' # 敏感词库
test_sentence = input('请输入一段话:')
for line in sensitive_character: # 遍历输入的字符是否存在敏感词库中
if line in test_sentence: # 判断是否包含敏感词
test_sentence = test_sentence.replace(line, '*')
print(test_sentence)

4、文字排版工具

文字排版工具是一款强大的文章自动排版工具,它会将文字按现代汉语习惯及发表出版要求进行规范编排。文字排版工具一般具备删除空格、英文标点替换、英文单词大写功能,
本实例要求编写代码,实现具有上述功能的文字排版工具。

string = "他问,你知道cba是什么单词的缩写么 ? "
print(string)
print('1.删除空格')
print('2.英文标点替换')
print('3.首字母大写')
print('4.退出')
while True:
option = input("请输入功能选项: ")
if option=='1':
string = string.replace(' ','')
print(string)
elif option =='2':
# 替换英文标点
for i in string:
if i == ',':
string = string.replace(',', ',')
elif i == '.':
string = string.replace('.', '。')
elif i == '?':
string = string.replace('?', '?')
elif i == '?':
string = string.replace("' ", "’")
string =string
print(string)
elif option =='3':
# 首字母大写
string = string.upper()
print(string)
elif option == '4':
break

5、青春有你

如今两年偶像选秀节目风头正盛,吸引了许多喜欢唱跳、有一颗明星梦想的少年少女参加,青春有你正是节目之一。青春有你采用计票机制,选手获得的票数越多,排名就越靠前。
本实例要求编写程序,接收选手的姓名和票数,输出排序后的成绩。

player_info = {}
li = []
print('输入quit表示选手成绩录入完毕')
while True:
name = input("请输入选手名称: ")
if name == 'quit':
break
score = float(input("请输入选手票数: "))
player_info[name] = score
items = player_info.items()
for j in items:
li.append([j[1], j[0]])
# 转换为list类型,进行排序
li.sort()
# 获取选手索引
count = len(li) - 1
# 输出排名
for i in range(1, len(li) + 1):
print(f"第{i}名:{li[count][1]},成绩为{li[count][0]}分")
count -= 1

6、神奇魔方阵

魔方阵又称纵横图,是一种 n 行 n 列、由自然数 1~n×n 组成的方阵,该方阵中的数符合以下规律:

  1. 方阵中的每个元素都不相等。
  2. 每行、每列以及主、副对角线上的个元素之和都相等。
    本实例要求编写程序,输出一个 5 行 5 列的魔方阵。

n =5
# 5*5二维列表
magic_square = [[0 for x in range(n)]
for y in range(n)]
i = n / 2
j = n - 1
num = 1
while num <= (n * n):
if i == -1 and j == n:
j = n - 2
i = 0
else:
if j == n:
j = 0
if i < 0:
i = n - 1
if magic_square[int(i)][int(j)]:
j = j - 2
i = i + 1
continue
else:
magic_square[int(i)][int(j)] = num
num = num + 1
j = j + 1
i = i - 1
for i in range(0, n):
for j in range(0, n):
print('%2d ' % (magic_square[i][j]),end='')
if j == n - 1:
print()

7、十大歌手

为丰富校园文化生活,学校拟组织一场歌手大赛,从参赛选手中选拔出十名相对突出的学生,授予“校园十大歌手”称号。比赛之中设置有评委组,每名选手演唱完毕之后会由评委组的十名评委打分。为保证比赛公平公正,防止作弊和恶意打分,计算得分时会先去掉最高分和最低分,再计算平均分。
本实例要求编写程序,实现根据需求计算平均分的功能。

"""
场景预设:学校组织了这么一个比赛,设置了10名评委打分,为了防止作弊和恶意打分,
去掉最高分和最低分再计算平均分作为选手成绩。
本实例要求编写这样一个程序:记录评委打分,排序去掉最高和最低分,计算平均分。
"""
# 评分列表
score_li = []
# 总分
total_score = 0
for i in range(1, 11):
score = float(input(f"请第{i}位评委输入评分: "))
score_li.append(score)
score_li.sort()
print(f"去掉最低分:{score_li[0]}")
print(f"去掉最高分:{score_li[len(score_li)-1]}")
# 去掉最低分
score_li.remove(score_li[0])
# 去掉最高分
score_li.pop()
for j in score_li:
total_score += j
print(f'选手最终得分为:{total_score/(len(score_li))}')

8、手机通讯录

通讯录是记录了联系人姓名和联系方式的名录,手机通讯录是最常见的通讯录之一,人们可以在通讯录中通过姓名查看相关联系人的联系方式等信息,也可以在其中新增联系人,或修改、删除联系人信息。
本实例要求编写程序,实现具备添加、查看、修改以及删除联系人信息功能的手机通讯录。

# 实际案例中,将删除查找联系人功能(index方法没有涉及)
person_info = []
print("=" * 20)
print('欢迎使用通讯录:')
print("1.添加联系人")
print("2.查看通讯录")
print("3.删除联系人")
print("4.修改联系人信息")
print("5.查找联系人")
print("6.退出")
print("=" * 20)
while True:
per_dict = {}
fun_num = input('请输入功能序号:')
if fun_num == '1':
per_name = input('请输入联系人的姓名:')
phone_num = input('请输入联系人的手机号:')
per_email = input('请输入联系人的邮箱:')
per_address = input('请输入联系人的地址:')
# 判断输入的是否为空
if per_name.strip() == '':
print('请输入正确信息')
continue
else:
per_dict.update({'姓名': per_name,
'手机号': phone_num,
'电子邮箱': per_email,
'联系地址': per_address})
person_info.append(per_dict) # 保存到列表中
print('保存成功')
elif fun_num == '2':
if len(person_info) == 0:
print('通讯录无信息')
for i in person_info:
for title, info in i.items():
print(title + ':' + info)
elif fun_num == '3': # 删除
if len(person_info) != 0:
del_name = input('请输入要删除的联系人姓名:')
for i in person_info:
if del_name in i.values():
person_info.remove(i)
print(person_info)
print('删除成功')
else:
print('该联系人不在通讯录中')
else:
print('通讯录无信息')
elif fun_num == '4': # 修改
if len(person_info) != 0:
modi_info = input('请输入要修改联系人姓名:')
for i in person_info:
if modi_info in i.values():
# 获取所在元组在列表中的索引位置
index_num = person_info.index(i)
dict_cur_perinfo = person_info[index_num]
for title, info in dict_cur_perinfo.items():
print(title + ':' + info)
modi_name = input('请输入新的姓名:')
modi_phone = input('请输入新的手机号:')
modi_email = input('请输入新的邮箱:')
modi_address = input('请输入新的地址:')
dict_cur_perinfo.update(姓名= modi_name)
dict_cur_perinfo.update(手机号= modi_phone)
dict_cur_perinfo.update(电子邮箱= modi_email)
dict_cur_perinfo.update(联系地址= modi_address)
print(person_info)
else:
print('通讯录无信息')
elif fun_num == '5': # 查找
if len(person_info) != 0:
query_name = input('请输入要查找的联系人姓名:')
for i in person_info:
if query_name in i.values():
index_num = person_info.index(i)
for title, info in person_info[index_num].items():
print(title + ':' + info)
break
else:
print('该联系人不在通讯录中')
else:
print('通讯录无信息')
elif fun_num == '6': # 退出
break

展开阅读全文

页面更新:2024-03-11

标签:评委   实战   选手   实例   通讯录   敏感   联系人   姓名   案例   功能   程序   信息

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top