我是新手。 我正在尝试将元素周期表中的元素打印到像表本身一样排列的屏幕上。我正在使用('-')来分隔尚未在字典中写的符号。我只使用嵌套的字典,总共有两个条目,以最大程度地减少混乱。
Training Source最后练习。
我在其他地方问了这个问题,有人(正确)建议使用str.join(list),但这不是本教程的一部分。 我想教自己,我想了解。没有上学,没有工作,没有教练。
链接教程底部的提示是:
1。“使用for循环遍历每个元素。挑选出元素的行号和列号。”
2。“使用两个嵌套的for循环来打印元素的符号或一系列空格,具体取决于该行的填充程度。”
我想用这种方式解决。提前致谢。 注意*否,请使用中级,中级或高级代码,本教程仅涵盖与变量,字符串,数字,列表,元组,函数(初学者),if语句,while循环,基本终端应用程序和词典有关的代码。 / p>
最后,我想用真实元素周期表的形状来打印表本身。如果您可以为新手投入一些代码,那对您真的很有帮助。
我的尝试(错误):
ptable = {'mercury':{'symbol':'hg','atomic number': '80','row': '6','column': '12','weight':'200.59',}, 'tungsten':{'symbol':'w','atomic number':'74','row':'6','column':'6','weight':'183.84'},}
for line in range(1,7):
for key in ptable:
row = int(ptable[key]['row'])
column = int(ptable[key]['column'])
if line != row:
print('-'*18)
else:
space = 18 - column
print('-'*(column-1)+ptable[key]['symbol']+'-'*space)
输出:
------------------
------------------
------------------
------------------
------------------
------------------
------------------
------------------
------------------
------------------
-----------hg------
-----w------------
输出应该有7行,如元素周期表中所示。应该像在元素周期表中那样在正确的位置显示每个元素的符号。由于我库中只有两个元素,因此应该在正确的位置显示Hg和W
经验丰富的程序员的解决方案:
for line in range(1, 8): # line will count from 1 to 7
# display represents the line of elements we will print later
# hyphens show that the space is empty
# so we fill the list with hyphens at first
display = ['-'] * 18
for key in ptable:
if int(ptable[key]['row']) == line:
# if our element is on this line
# add that element to our list
display[int(ptable[key]['column']) - 1] = ptable[key]['symbol']
# str.join(list) will "join" the elements of your list into a new string
# the string you call it on will go in between all of your elements
print(''.join(display))
答案 0 :(得分:0)
老实说,我认为这段代码并不难理解,我想尝试对其进行更改只会使其变得更加复杂。我将在最后放置一些链接,以供您检查并了解似乎似乎也不理解的” join()方法和range()函数。您说您想自己学习Python,这真是太好了! (我也正在这样做)但这并不意味着您必须坚持学习教程;)。您可以超越它,也可以跳过不需要的部分,然后在需要时再回来。如果您需要有关方法的说明(例如''.join)或其他任何信息,请告诉我。抱歉,如果对您没有帮助;(。
链接: