python - 制作一个有周期表的程序
问题描述
我正在使用 PYCHARM 来运行它,因为这是我们教授的要求
元素周期表的开发是为了组织有关构成宇宙的元素的信息。编写一个 python 程序,让您输入有关元素周期表中每个元素的信息。确保包含以下信息:符号、名称、原子序数、行和列 为用户提供选项菜单: 通过输入元素的符号,查看存储的有关任何元素的所有信息。选择一个属性并查看表中每个元素的该属性。
我有以下代码
class element:
def __init__(self, sym, name, no, typ, row, col):
self.symbol = sym
self.name = name
self.atomic_number = no
self.elem_type = typ
self.row = row
self.column = col
def viewElement(element, n):
print("Name: " + element.name)
if n == 2 or n == 3:
print("Symbol: " + element.symbol)
if n == 2 or n == 4:
print("Atomic Number: " + str(element.atomic_number))
if n == 2 or n == 5:
print("Type: " + element.elem_type)
if n == 2 or n == 6:
print("Row: " + str(element.row))
if n == 2 or n == 7:
print("Column: " + str(element.column))
print("\n")
if __name__ == "__main__":
elem_dict = {}
while 1:
print("\n Main Menu \n")
print("1. Add an Element")
print("2. View an Element")
print("3. View all Element Names")
print("4. View all Atomic Numbers")
print("5. View all Types")
print("6. View all Row Numbers")
print("7. View all Column Number")
print("8. Exit")
choice = int(input("Enter your Choice: "))
if choice == 1:
sym = input("Enter the symbol: ")
name = input("Enter the element name: ")
atom = int(input("Enter the atomic number: "))
typ = input("Enter the element type: ")
row = int(input("Enter the row number: "))
col = int(input("Enter the column number: "))
if sym not in elem_dict.keys():
e1 = element(sym, name, atom, typ, row, col)
elem_dict[sym] = e1
print(sym + " added\n")
else:
print("Element already present")
elif choice == 2:
sym = input("Enter the symbol: ")
viewElement(elem_dict[sym], 2)
elif choice == 3:
for i in elem_dict.keys():
viewElement(elem_dict[i], 3)
elif choice == 4:
for i in elem_dict.keys():
viewElement(elem_dict[i], 4)
elif choice == 5:
for i in elem_dict.keys():
viewElement(elem_dict[i], 5)
elif choice == 6:
for i in elem_dict.keys():
viewElement(elem_dict[i], 6)
elif choice == 7:
for i in elem_dict.keys():
viewElement(elem_dict[i], 7)
elif choice == 8:
print("Exiting")
break
else:
print("Wrong entry, Please re-enter\n")
当我选择选项 1 并获得最后一部分时,我不断收到以下错误
主菜单
- 添加元素
- 查看元素
- Viel 所有元素名称
- 查看所有原子序数
- 查看所有类型
- 查看所有行号
- 查看所有列号
- 出口
输入您的选择:1
输入符号:H
输入元素名称:氢
输入原子序数:1
输入元素类型:气体
输入行号:1
输入列号:1
Traceback (most recent call last):
File "C:/Users/stephanie/Desktop/LEGRANGE_UNIT_SEVEN/Periodic_Table.py",
line 51, in <module>
e1 = element(sym, name, atom, typ, row, col)
TypeError: element() takes no arguments
Process finished with exit code 1
解决方案
您需要将init
方法更改为 dunder ( __init__
):
def __init__(self, sym, name, no, typ, row, col):
# Notice the double underscore either side of init
否则该类将不会初始化,因为您init
只是该类中的一个自定义方法。
推荐阅读
- postgresql - 在查询中获取最高和最低价格和卖家
- visual-studio - Visual Studio Code 总是以某种“检查”模式启动
- java - Spring Batch + JPA + PostgreSQL 当前事务被中止,命令被忽略直到事务块结束
- asp.net-core - Rest api,将 cookie 设置为 blazor wasm 客户端
- laravel - 试图获取非对象的属性“总计”(laravel 和 vue)
- javascript - 如何生成 0.1 到 46.61 之间的序列,间隔为 0.1
- swift - UIButton 标题“Button”从属性检查器中删除后未清除
- wordpress - 从订单中删除商品后订单页面未更新
- html - 在透明 div 之上使子 div 不透明
- regex - 不接受单个下划线但接受单个字母的正则表达式