- 完整的代码放在《python 学生信息管理系统(一)》里,这里记录我学习中遇到的新问题。
附:编写好的部分学生信息文件 stu.txt如下:
{'id': '0101', 'name': '依依', 'chinese': 88, 'math': 2, 'english': 74}
{'id': '0102', 'name': '尔尔', 'chinese': 100, 'math': 100, 'english': 100}
{'id': '0103', 'name': '伞伞', 'chinese': 99, 'math': 80, 'english': 90}
{'id': '0104', 'name': '思思', 'chinese': 77, 'math': 100, 'english': 54}
{'id': '0105', 'name': '五五', 'chinese': 66, 'math': 99, 'english': 66}
{'id': '0106', 'name': '柳柳', 'chinese': 90, 'math': 58, 'english': 60}
{'id': '0107', 'name': '琪琪', 'chinese': 44, 'math': 68, 'english': 94}
问题与发现:
'''
eval函数就是实现list、dict、tuple与str之间的转化
返回传入字符串的表达式的结果
'''
'''
with open('stu.txt', 'r', encoding='utf-8') as rfile:
info = rfile.readlines()
print(info) # [“{xxx}\n”,“{xxx}\n”,“ ”,“ ”,“ ”,“ ”]
for item in info:
print(eval(item))
print(type(eval(item))) # dict
'''
'''
表格,规定宽度,对齐格式
'''
'''
lst = [{'id': '0103', 'name': '伞伞', 'chinese': 99, 'math': 80, 'english': 90},
{'id': '0104', 'name': '思思', 'chinese': '100', 'math': '100', 'english': '100'}]
std='{:^6}\t{:^12}\t{:^8}\t{:^8}\t{:^8}\t{:^8}' # 字符串
print(std.format('ID','姓名','语文成绩','数学成绩','英语成绩','总成绩'))
for item in lst:
print(std.format(item.get('id'),
item.get('name'),
item.get('chinese'),
item.get('math'),
item.get('english'),
int(item.get('chinese')) + int(item.get('math')) + int(item.get('english'))
))
'''
'''
1, while True + continue
2, fun() 递归
两者等效(我猜)
'''
'''
def fun1():
while True:
a = int(input('随便输入一个数字:'))
if a > 0:
print('输入大于0')
break
else:
continue
print('Congratulation!')
def fun2():
a = int(input('随便输入一个数字:'))
if a > 0:
print('输入大于0')
print('Congratulation!')
return
else:
fun2()
if __name__ == '__main__':
fun1()
print('--------')
fun2()
'''
'''
推荐阅读:https://blog.csdn.net/qq_40169189/article/details/108070945
下边的例子慢慢品,不好说
理解参数key:用来比较的数(好像得是个可迭代对象)
'''
'''
lst = [(1,2),(3,1),(2,6),(5,5)]
lst.sort()
print(lst) # [(1, 2), (2, 6), (3, 1), (5, 5)]
def fun(lst):
return lst[0]
lst.sort(key=fun,reverse=False)
print(lst) # [(1, 2), (2, 6), (3, 1), (5, 5)]
def fun2(lst):
return lst[1]
lst.sort(key=fun2,reverse=False)
print(lst) # [(3, 1), (1, 2), (5, 5), (2, 6)]
'''
'''
x = lambda a : a + 10
print(x) # <function <lambda> at 0x00000258A412F558>
print(x(5)) # 15
x = lambda a, b : a * b
print(x) # <function <lambda> at 0x00000193DAACF798>
print(x(5, 6)) # 30
lst = [{'id': '0101', 'name': '依依', 'chinese': 88, 'math': 2, 'english': 100},
{'id': '0102', 'name': '尔尔', 'chinese': 100, 'math': 100, 'english': 100},
{'id': '0103', 'name': '伞伞', 'chinese': 99, 'math': 80, 'english': 90}
]
lst.sort(key=lambda x: int(x['chinese']),reverse=True) # 降序 x是字典
print(lst) # 0102 0103 0101
'''
|