实验目的
(1)掌握Python流程控制语句,合理使用循环进行程序设计
(2)掌握Python数据结构,能熟练运用进行程序设计
(3)掌握Python的文件读写,能编写读取数据集的程序
1.冒泡法排序
对于给定一个Python的列表SList,要求使用Python实现冒泡排序算法对SList进行排序
输入样例:SList = [5,6,3,4,8,1,9,0,2,7]
输出样例:[0,1,2,3,4,5,6,7,8,9]
def maopao(arr):
n = len(arr)
for i in range(n-1):
for j in range(0, n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
SList = [5,6,3,4,8,1,9,0,2,7]
SList=maopao(SList)
print (SList)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
2.节假日字典设计
使用Python编写一个2022年节假日字典,键为日期(“20220201”表示2022年2月1日),值为节假日的名称,如“春节”“元旦"。要求,当输入日期时,返回节假日的名称,最后使用json模块将这个节假日字典序列化并保存到磁盘上的json文件中。
目标:掌握字典的序列到文件,和从文件反序列化为字典数据类型
import json
holidays = {
"20220101": "元旦",
"20220201": "春节",
"20220405": "清明节",
"20220501": "劳动节",
"20220603": "端午节",
"20220910": "中秋节",
"20221001": "国庆节"
}
def holiday_name(date):
return holidays.get(date, "不是节假日")
date = input("请输入日期(格式:20220201):")
print(f"日期 {date} 是 {holiday_name(date)}")
# 将节假日字典序列化为JSON文件
with open('holidays.json', 'w', encoding='utf-8') as f:
json.dump(holidays, f, ensure_ascii=False, indent=4)
print("节假日字典已保存到holidays.json文件中。")
请输入日期(格式:20220201): 20220101
日期 20220101 是 元旦 节假日字典已保存到holidays.json文件中。
# 从JSON文件中反序列化数据为字典
with open('holidays.json', 'r', encoding='utf-8') as f:
holidays_json = json.load(f)
# 测试反序列化后的字典
for date, holiday_name in holidays_json.items():
print(f" {date} 是 {holiday_name}")
20220101 是 元旦
20220201 是 春节
20220405 是 清明节
20220501 是 劳动节
20220603 是 端午节
20220910 是 中秋节
20221001 是 国庆节
3.读取数据文件
with open('horseColic.txt', 'r', encoding='utf-8') as file:
lines = file.readlines()
for line in lines:
print(line, end='')#确保在打印每行时不会添加额外的换行符