如何使用户名成为计算机可以使用和读取的变量?

时间:2019-09-11 00:54:20

标签: python python-3.x

这个项目很简单。它要求用户输入一些数字,对它们进行一些数学运算,然后将其吐出。但是,我希望用户可以选择保存其结果值,将其命名,然后将该变量用作数字值。 例如: 如果用户放入1 2 3并决定将其相加,他们将得到6。然后,用户决定将其总和称为var。我希望用户输入var 7 8等于6 7 8,因为var = 6是可能的。 另外,这是我的第一个Python项目,因此,如果这个问题看起来不寻常,我深表歉意。

我弄清楚了如何将用户输入的结果记录为变量。它显示在#Save部分下面。 numbers接受浮点数或整数,因此无法通过字符串(如果我错了,请纠正我。)问题之一是我不知道如何使Python“记住”用户变量的值在两个周期之间。我也不知道如何让numbers接受所说的用户变量作为数字。

#Loop
repeat = True
while repeat:

#Input   
    directions = print("Type in some numbers. Use spaces to indicate multiple numbers. Integers, decimals, and negatives are accepted.")
    numbers = [float(x) or int(x) for x in input().split()]
    print(numbers)
    choice = input("Do you wanna choose between '+', '*', '-', or '/' ? Note that values will be subtracted or divided in order that they appear in the list")

#Math
    #Addition
    if choice == '+':
        _sum = sum(numbers)
        print(_sum)
    #Multiplication
    elif choice == '*':        
        one = 1
        for x in numbers:
            one *= x
        print(one)
    #Subtraction
    elif choice == '-':
       if len(numbers) > 0:
           diff = numbers[0] - sum(numbers[1:])
           print(diff)
    #Division
    elif choice == '/':
        self = numbers[0]
        for x in numbers[1:]:
          self /= x
        print(self)
#Saves
    save = input("Do you wanna save the value of the result you just got? Type in 'yes' or 'no'")
    if save == 'yes':
        result = input("Is your result a sum, product, difference or a quotient? Use '+', '*', '-', or '/' to answer")
        if result == '+':
            rename = input("Give your result a name:")
            user_sum = globals()[rename] = _sum
        elif result == '*':
            rename = input("Give your result a name:")
            user_pro = globals()[rename] = one
        elif result == '-':
            rename = input("Give your result a name:")
            user_dif = globals()[rename] = diff
        elif result == '/':
            rename = input("Give your result a name:")
            user_quo = globals()[rename] = self   

#Kill
    kill = input("To kill this program type in 'kill' To continue just press enter")

    if kill == 'kill':
        repeat = False

1 个答案:

答案 0 :(得分:0)

您可以使用字典来存储变量名称和值。字典将键映射到值,因此它应该完全按照您的要求工作。

要声明字典:variables = {}

要在字典中设置键/值:variables[var_name] = var_value

要检查字典是否包含键:var_name in variables

要从字典中的键获取值:variables[var_name](如果没有键var_name,则引发KeyError)或variables.get(var_name)(如果没有键,则返回None:var_name) )。

您可以在https://www.w3schools.com/python/python_dictionaries.asp

中了解有关Python字典的更多信息