2016-06-23 1 views
0

Я изучаю python в течение 2 недель. Итак, мой вопрос, скажем, я создал калькулятор. Как добавить номер столько, сколько вам нравится?Python Как добавить номера столько, сколько нравится пользователям

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") 

Rest из них же Давайте сделаем эту часть английского

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) 

Распечатайте результат. Как калькуляторы телефона. Я пробовал сделать это с помощью цикла, который ломается, когда пользовательский тип закрывается. Но я не могу объявить эту переменную. Как сделать автоматические переменные?

+0

Используйте список. Связанные чтения: [Как мне сделать переменные переменные в Python?] (Http://stackoverflow.com/q/1373164/953482) – Kevin

+0

ввести вас в список – galaxyan

+0

Вам может быть интересно использовать [list] (https://docs.python.org/2/tutorial/datastructures.html). Не уверен, что вы подразумеваете под «автоматическими переменными». Честно говоря, это очень сложно понять, если имена переменных не являются английскими. – Kupiakos

ответ

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 

Или вы можете использовать подход с Lists

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

Да, это должно сделать:) –

+0

@ Dr.UK если это ответили на ваш вопрос, пожалуйста, не забудьте принять его в качестве ответа. Cheers –

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,) 

Я напечатал его слепой, так что может быть ошибки в коде, но вы получите дрейфа, надеюсь

+1

Впечатал его вслепую, вы говорите? ;) http: // stackoverflow.com/questions/354038/how-do-i-check-if-a-string-is-a-number-float-in-python –

+0

На самом деле я действительно не знал. Я написал много в python и имею обширную базу кода, чтобы вырезать и pate. Но я вижу вашу мысль о методе is_number :-) – Ivonet

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