Python 基础
2020-02-13 本文已影响0人
wjundong
递归
#!/usr/bin/python3
#coding=utf-8
nx = 0
# 移动函数:将第 n 个盘子从 x 处移动到 y 处
def move(n, x, y):
global nx
nx += 1
print("%03d 将第 %d 个盘子从 %s 移动到 %s"%(nx, n, x, y))
# 汉诺塔:将 n 个牌子从 a 借助 b 移动 到 c
def hanoi(n, a, b, c) :
if n == 0:
return
# 1. 先将 n-1 个牌子从 a 借助 b 移动 到 c
hanoi(n-1, a, c, b)
# 2. 再将底下的第 n 个盘子从 a 移动到 c
move(n, a, c)
# 3. 最后把 b 上的 n-1 个盘子移动到 c 完成移动
hanoi(n-1, b, a, c)
hanoi(3, 'A', 'B', 'C')
实现学生管理系统
def addstu(lst):
student = {}
student['name'] = input("输入要添加的学生姓名: ")
student['number'] = input("输入学生学号: ")
student['age'] = input("输入学生年龄: ")
lst[student.get('name')] = student
def delstu(lst):
name = input("输入要删除的学生姓名: ")
if name in lst:
del lst[name]
else:
print("没有该学生")
def setstu(lst):
name = input("输入要修改的学生姓名: ")
if name in lst:
stu = lst.get(name)
print("要修改的学生信息如下: ")
print(stu)
stu['name'] = input("输入要修改的学生姓名: ")
stu['number'] = input("输入修改的学号: ")
stu['age'] = input("输入修改的年龄: ")
del lst[name]
lst[stu['name']] = stu
print("修改完成")
else:
print("没有该学生")
def findstu(lst):
name = input("输入要查找的学生姓名: ")
if name in lst:
print("要查找的学生信息如下: ")
stu = lst.get(name)
print(stu)
else:
print("没有该学生")
def savefile(lst, filename):
f = open(filename, 'w')
item = {}
for key in lst:
item = lst.get(key)
print(item)
for key in item:
f.write(key)
f.write(':')
f.write(item.get(key))
f.write(' ')
f.write('\n')
def loadflie(filename):
lst = {}
try:
f = open(filename, 'r')
for line in f.readlines():
info = line.split(' ')
for dictt in info:
key, value = dictt.split(':')
student = {}
student[key] = value
lst[student.get('name')] = student
return lst
except FileNotFoundError:
print("没有文件")
return {}
def main():
lst = loadflie('dat.txt')
while True:
print("----------------")
print("1. 添加学生")
print("2. 删除学生")
print("3. 修改学生")
print("4. 查找学生")
print("5. 打印表格")
print("6. 退出界面")
cmd = int(input("输入命令:"))
if cmd == 1:
addstu(lst)
elif cmd == 2:
delstu(lst)
elif cmd == 3:
setstu(lst)
elif cmd == 4:
findstu(lst)
elif cmd == 5:
print(lst)
elif cmd == 6:
savefile(lst, 'dat.txt')
break
if __name__ == '__main__':
main()