Python如何像用户喜欢的那样添加数字

时间:2016-06-23 16:50:35

标签: python python-2.7 variables calculator

我学习python 2周了。 所以我的问题是,我说我创建了一个计算器。 如何根据用户的喜好添加数字?

os.system("del *.pyc")    

print "Hello %s!" % ad
print "---------------------------------------"
print "                 *Add"
print "                 *x Add (Dunno english)"
print "                 *Multiply"
print "                  *x Multiply (Look up)"
print "                 *Multiply by itself"
print "                 *math.sqrt"
print "---------------------------------------"

print "What u want? :)"
choice = raw_input("Secimim= ")

print "So you choose %s :)" % choice
print ""
print "redirecting..."
time.sleep(3)
os.system("cls")
if secim.lower()=="add":
    first=input("First number= ")
    second=input("Second= ")
    print "Result= " + str(add(first,second))
    os.system("pause")

其余的都是一样的 让这部分成为英语

print "Let's have your choice :)"
secim = raw_input("Secimim= ")
adsiz = (ad,secim)
print "So you selected this :)" % adsiz
print ""
print "Redirecting..."
time.sleep(3)
os.system("cls")
if secim.lower()=="add":
    ilksayi=input("IFirst= ")
    ikincisayi=input("Second= ")
    print "Result= " + str(toplama(ilksayi,ikincisayi))
    os.system("pause")
def toplama(x,y):
    return x+y

这部分

if secim.lower()=="add":
        firstnumber=input("IFirst= ")
        secondnumber=input("Second= ")
        print "Result= " + str(add(ilksayi,ikincisayi))
        os.system("pause")

我想把它变成一个循环,它说:

Number=10
Number = 26
Number = 62
...

当你输入

Number= (Blank)

打印结果。 就像手机的计算器一样。 我尝试使用循环在用户类型退出时中断。 但我无法宣布这么多变数。 如何制作自动变量?

3 个答案:

答案 0 :(得分:0)

我认为你正在寻找类似的东西。

Python 2

num = '0'
total = 0
while True: #run loop until user enters something that is not a number
    if not num.isdigit():
        break #at this point break out of the loop
    total += int(num) #else add the number to the total (could be / * - +)
    num = raw_input('Number:\t')
print total #finally print the total

或者您可以使用列表方法

nums = []
while True:
    num = raw_input('Number: ')
    if num.isdigit(): nums.append(int(num))
    else: break;
print sum(nums)

答案 1 :(得分:0)

你的意思是......

def is_number(s):
    try:
        float(s)
        return True
    except ValueError:
        return False

number = 0
input = raw_input('Number: ')
while input != None and input != "":
    if not is_number(input):
        print "NaN"
        continue
    number += float(input)
    input = raw_input('Number: ')
print "Number = %s" % (number, )

我输入它是盲目的,因此代码中可能存在错误,但你希望得到漂移

答案 2 :(得分:0)

试试这个:

#! python3
# coding=utf-8
"""Add a lot of numbers."""

def add_everything():
    """ """
    numbers = []
    while True:
        print("Sum:", sum(numbers) )
        s = input("Enter number(s) or just hit Return to quit:")
        if not s:
            break
        for n in s.split():
            try:
                number = float(n)
            except ValueError:
                print("That wasn't a number. Try again!")
            else:
                numbers.append( number )
                print("added {} to {}".format( number, sum(numbers[:-1]) ) )
            finally:
                pass

    print("That was fun!")
    print("I remembered all your {} numbers:".format(len(numbers)) )
    for n in numbers:
        print(" {:4.2f}".format(n) )
    print("--------")
    print(" {:4.2f}".format( sum(numbers) ) )


if __name__ == '__main__':
    add_everything()

示例:

Sum: 0
Enter number(s) or just hit Return to quit:123 45.6
added 123.0 to 0
added 45.6 to 123.0
Sum: 168.6
Enter number(s) or just hit Return to quit:hello
That wasn't a number. Try again!
Sum: 168.6
Enter number(s) or just hit Return to quit:-0.99
added -0.99 to 168.6
Sum: 167.60999999999999
Enter number(s) or just hit Return to quit:
That was fun!
I remembered all your 3 numbers:
 123.00
 45.60
 -0.99
--------
 167.61