小学妹说要毕业了,学了一学期Python等于没学,现在要做毕设做不出来,让我帮帮她,晚上去她家吃夜宵。
当时我心想,这不是分分钟的事情,还要去她家,男孩子晚上不要随便出门,要学会保护好自己,于是我花了十分钟给她写了一个发过去,这下不用去她家了~

主要代码,完整代码素材、包括其它版本学生管理系统代码,也有录制好的视频讲解,第八行代码自取即可!
# 学生信息放在字典里面
student_info = [
{'姓名': '婧琪', '语文': 60, '数学': 60, '英语': 60, '总分': 180},
{'姓名': '巳月', '语文': 60, '数学': 60, '英语': 60, '总分': 180},
{'姓名': '落落', '语文': 60, '数学': 60, '英语': 60, '总分': 180},
]
# 死循环 while True 当一直为真
# 源码自取君羊:708525271
while True:
# 输出
print(msg)
# 输入选项
num = input('请输入你想要进行操作: ')
# 进行判断, 判断输入内容是什么, 然后返回相应结果
"""
if .... elif... 多条件判断语句
"""
if num == '1':
# 新建学生信息, 输入内容 input 输入的内容, 返回字符串数据类型
name = input('请输入学生姓名: ')
chinese = int(input('请输入语文成绩: '))
math = int(input('请输入数学成绩: '))
english = int(input('请输入英语成绩: '))
# 字符串与字符串相加: 字符串拼接 int 整数数据类型
score = chinese + math + english # 总分
# 把信息内容, 放入字典里面
student_dit = {
'姓名': name,
'语文': chinese,
'数学': math,
'英语': english,
'总分': score,
}
# 把学生信息 添加到列表里面
student_info.append(student_dit)
elif num == '2':
# for循环遍历, 把列表里元素 一个一个提取出来 \t
print('姓名\t\t语文\t\t数学\t\t英语\t\t总分')
for student in student_info:
# student 字典数据类型, 根据键值对, 提取相关内容
print(
student['姓名'], '\t\t',
student['语文'], '\t\t',
student['数学'], '\t\t',
student['英语'], '\t\t',
student['总分'],
)
elif num == '3':
name = input('请输入查询学生姓名: ')
# 遍历 for else 用法
for student in student_info:
# 判断 查询名字和学生名字 是否一致
if name == student['姓名']:
print('姓名\t\t语文\t\t数学\t\t英语\t\t总分')
print(
student['姓名'], '\t\t',
student['语文'], '\t\t',
student['数学'], '\t\t',
student['英语'], '\t\t',
student['总分'],
)
# 跳出本次循环 continue 继续循环下面的代码
break
else:
# 字符串格式化方法 format
print('查无此人, 没有{}学生信息!'.format(name))
elif num == '4':
name = input('请输入删除学生姓名: ')
# 把每一个学生的信息, 一个一个提取出来
for student in student_info:
# 判断, 输入的学生姓名 是否在学生信息库里面
if name == student['姓名']:
# 打印成绩, 查看学生情况
print('姓名\t\t语文\t\t数学\t\t英语\t\t总分')
print(
student['姓名'], '\t\t',
student['语文'], '\t\t',
student['数学'], '\t\t',
student['英语'], '\t\t',
student['总分'],
)
# 输入是否要真的删除学生信息 <防止>
choose = input(f'是否确定要删除{name}信息(y/n)')
# or 或者的意思
if choose == 'y' or choose == 'Y':
# 删除信息 移除列表里面元素 remove()
student_info.remove(student)
print(f'{name}信息已经被删除!')
break
elif choose == 'n' or choose == 'N':
# 跳出循环
break
else:
print('查无此人, 没有{}学生信息!'.format(name))
elif num == '5':
print('修改学生信息')
name = input('请输入删除学生姓名: ')
# 把每一个学生的信息, 一个一个提取出来
for student in student_info:
# 判断, 输入的学生姓名 是否在学生信息库里面
if name == student['姓名']:
# 打印成绩, 查看学生情况
print('姓名\t\t语文\t\t数学\t\t英语\t\t总分')
print(
student['姓名'], '\t\t',
student['语文'], '\t\t',
student['数学'], '\t\t',
student['英语'], '\t\t',
student['总分'],
)
# 输入是否要真的删除学生信息 <防止>
choose = input(f'是否要修改{name}信息(y/n)')
# or 或者的意思
if choose == 'y' or choose == 'Y':
# 修改操作 和 新建学生信息 有点类似
name = input('请输入学生姓名: ')
chinese = int(input('请输入语文成绩: '))
math = int(input('请输入数学成绩: '))
english = int(input('请输入英语成绩: '))
# 字符串与字符串相加: 字符串拼接 int 整数数据类型
score = chinese + math + english # 总分
# 修改, 做替换 字典修改值
student['姓名'] = name
student['语文'] = chinese
student['数学'] = math
student['英语'] = english
student['总分'] = score
print(f'{name}信息已经修改了!')
break
elif choose == 'n' or choose == 'N':
# 跳出循环
break
else:
print('查无此人, 没有{}学生信息!'.format(name))

今天的分享就到这里结束了,祝各位新的一年前程似锦!
我正在使用i18n从头开始构建一个多语言网络应用程序,虽然我自己可以处理一大堆yml文件,但我说的语言(非常)有限,最终我想寻求外部帮助帮助。我想知道这里是否有人在使用UI插件/gem(与django上的django-rosetta不同)来处理多个翻译器,其中一些翻译器不愿意或无法处理存储库中的100多个文件,处理语言数据。谢谢&问候,安德拉斯(如果您已经在rubyonrails-talk上遇到了这个问题,我们深表歉意) 最佳答案 有一个rails3branchofthetolkgem在github上。您可以通过在Gemfi
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。
使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta
我需要从一个View访问多个模型。以前,我的links_controller仅用于提供以不同方式排序的链接资源。现在我想包括一个部分(我假设)显示按分数排序的顶级用户(@users=User.all.sort_by(&:score))我知道我可以将此代码插入每个链接操作并从View访问它,但这似乎不是“ruby方式”,我将需要在不久的将来访问更多模型。这可能会变得很脏,是否有针对这种情况的任何技术?注意事项:我认为我的应用程序正朝着单一格式和动态页面内容的方向发展,本质上是一个典型的网络应用程序。我知道before_filter但考虑到我希望应用程序进入的方向,这似乎很麻烦。最终从任何
我想要做的是有2个不同的Controller,client和test_client。客户端Controller已经构建,我想创建一个test_clientController,我可以使用它来玩弄客户端的UI并根据需要进行调整。我主要是想绕过我在客户端中内置的验证及其对加载数据的管理Controller的依赖。所以我希望test_clientController加载示例数据集,然后呈现客户端Controller的索引View,以便我可以调整客户端UI。就是这样。我在test_clients索引方法中试过这个:classTestClientdefindexrender:template=>
如果您尝试在Ruby中的nil对象上调用方法,则会出现NoMethodError异常并显示消息:"undefinedmethod‘...’fornil:NilClass"然而,有一个tryRails中的方法,如果它被发送到一个nil对象,它只返回nil:require'rubygems'require'active_support/all'nil.try(:nonexisting_method)#noNoMethodErrorexceptionanymore那么try如何在内部工作以防止该异常? 最佳答案 像Ruby中的所有其他对象
关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion为什么SecureRandom.uuid创建一个唯一的字符串?SecureRandom.uuid#=>"35cb4e30-54e1-49f9-b5ce-4134799eb2c0"SecureRandom.uuid方法创建的字符串从不重复?
有没有办法在这个简单的get方法中添加超时选项?我正在使用法拉第3.3。Faraday.get(url)四处寻找,我只能先发起连接后应用超时选项,然后应用超时选项。或者有什么简单的方法?这就是我现在正在做的:conn=Faraday.newresponse=conn.getdo|req|req.urlurlreq.options.timeout=2#2secondsend 最佳答案 试试这个:conn=Faraday.newdo|conn|conn.options.timeout=20endresponse=conn.get(url
我有一个正在构建的应用程序,我需要一个模型来创建另一个模型的实例。我希望每辆车都有4个轮胎。汽车模型classCar轮胎模型classTire但是,在make_tires内部有一个错误,如果我为Tire尝试它,则没有用于创建或新建的activerecord方法。当我检查轮胎时,它没有这些方法。我该如何补救?错误是这样的:未定义的方法'create'forActiveRecord::AttributeMethods::Serialization::Tire::Module我测试了两个环境:测试和开发,它们都因相同的错误而失败。 最佳答案
我安装了ruby版本管理器,并将RVM安装的ruby实现设置为默认值,这样'哪个ruby'显示'~/.rvm/ruby-1.8.6-p383/bin/ruby'但是当我在emacs中打开inf-ruby缓冲区时,它使用安装在/usr/bin中的ruby。有没有办法让emacs像shell一样尊重ruby的路径?谢谢! 最佳答案 我创建了一个emacs扩展来将rvm集成到emacs中。如果您有兴趣,可以在这里获取:http://github.com/senny/rvm.el