Python:如果用户输入仅是空格,是否有一种方法可以强制代码忽略变量?

问题描述 投票:0回答:1

这是我第一次发帖,很长一段时间以来我一直没有学习编码。这是我尝试自行构建的第一个脚本,请保持友好。

程序与元素及其原子质量的CSV链接。用户输入化学式,返回的是分子量和分子量百分比的细分。它运行良好,但按现状它requires 6个值,例如H2SO4的H 2 S 1 O 4。显然,我想为长公式提供选项,但对于较短的公式,脚本返回错误,提示它期望有6个变量,但只有4个要解压,例如:H2O1。

如果没有用户输入/输入仅是空格,是否有一种直接方法使脚本跳过/忽略变量?我一直在使用Google搜索,但是它比我想象的要难,或者我没有很好地使用搜索引擎。我弄乱了for循环,但是什么都没打。

附带的代码,我知道如果我有更多的知识,它可能是简单/熟练的两倍。预先感谢。

def formula():
element_1, element_1_size, element_2, element_2_size, element_3, element_3_size = input("Enter your formula: ").split()

element_1_mass = float(elements_data_symbols.loc[element_1, "Atomic Mass"])
element_2_mass = float(elements_data_symbols.loc[element_2, "Atomic Mass"])
element_3_mass = float(elements_data_symbols.loc[element_3, "Atomic Mass"])

element_1_molecular_mass = element_1_mass * int(element_1_size)
element_2_molecular_mass = element_2_mass * int(element_2_size)
element_3_molecular_mass = element_3_mass * int(element_3_size)

molecular_mass = element_1_molecular_mass + element_2_molecular_mass + element_3_molecular_mass

molecule_name = str(element_1 + element_1_size + element_2 + element_2_size + element_3 + element_3_size)

print("Molecular mass of " + molecule_name + ": " + str(molecular_mass) + " g/mol")

element_1_percentage = element_1_molecular_mass / molecular_mass * 100
element_2_percentage = element_2_molecular_mass / molecular_mass * 100
element_3_percentage = element_3_molecular_mass / molecular_mass * 100


print(element_1 + ": " + str(element_1_percentage) + " %")
print(element_2 + ": " + str(element_2_percentage) + " %")
print(element_3 + ": " + str(element_3_percentage) + " %")
print(" ")
python-3.x
1个回答
0
投票

您是对的,一种更有效的方法是使用循环遍历数组中的每一对元素,但保持简单,您可以修改代码以仅在输入数组位于一定长度:

    # Receive user input as an array
    elements = input("Enter your formula").split()

    # First element should always exist (but could also do this conditionally)
    element_1 = elements[0]
    element_1_size = elements[1]

    # Check if array has at least 4 elements
    if len(elements) >= 4:
        element_2 = elements[2]
        element_2_size = elements[3]

    # Check if array has at leat 6 elements
    if len(elements) >= 6:
        element_3 = elements[4]
        element_3_size = elements[5]
© www.soinside.com 2019 - 2024. All rights reserved.