2015-03-21 2 views
0

Я хочу jobber() сделать следующее: если пользователь вводит «talk», он запускает chat() и «calc» для calculator().Python Если оператор равен строке

Это мой первый проект, и я совершенно новый, поэтому спасибо за любую помощь.

import sys 
import time 
def chat(): 
    print('Hello there. What is your name?') 
    name = sys.stdin.readline() 
    print('Your name is %s...interesting. My name is Chat I was created to have a small planned out conversation when you call me :)' % (name)) 
    time.sleep(2) 
    print('How is the weather in your town today?') 
    weather = sys.stdin.readline() 
    time.sleep(1.5) 
    print('Your weather is %s? The weather in my town is quite sunny.' % (weather)) 
    time.sleep(2) 
    print('This is all the conversation I can make at the moment. Please be patient while my creator trys to update me.') 


def calculator(): 
    print('How much money do you have?') 
    money = int(sys.stdin.readline()) 
    print('How much are you paid?') 
    job = int(sys.stdin.readline()) 
    print('How much do you usually spend?') 
    spent = int(sys.stdin.readline()) 
    for week in range(0,30): 
      money = money + job - spent 
      print('Week %s. Money %s' % (week,money)) 



def jobber(): 
    print('Type talk for a short chat. Type calc for a money calculator.') 
    choice = int(sys.stdin.readline()) 
    if choice == 1: 
      chat() 
    if choice == 2: 
      calculator() 
+1

В чем проблема, что не работает? какая помощь вам нужна? – Zielu

+0

Итак, где вы когда-нибудь называли 'jobber'? –

ответ

0

использование input() и конвертировать в lowercase

def jobber(): 
    choice = input('Type talk for a short chat. Type calc for a money calculator.').lower() 
    if choice == "talk": 
      chat() 
    if choice == "calc": 
      calculator() 
+1

'raw_input' не существует в python 3. – krock

+0

Спасибо, что это помогает. Я все еще изучаю python прямо сейчас, чтобы объяснить, почему я этого не пробовал. Это был просто тест, чтобы понять, что я могу сделать с тем, что я уже узнал. – Darkar2045

+0

Теперь он дает мне синтаксическую ошибку – Darkar2045

0

Для сбора пользовательского ввода вам лучше использовать функцию input().

+0

Это хорошая идея .. ответ не хватает глубины – brunsgaard

0

Вы должны использовать input() встроенную функцию, например, установив переменную money в функции calculate должно быть просто:

money = int(input('How much money do you have?')) 

Поскольку вы только используя переменную choice, чтобы определить, какую функцию выполнять, вы можете даже рассмотреть возможность размещения ввода в инструкции if:

if input('Type talk or chat.') == 'calc': 
    calculator() 
else: 
    chat() 

python tutorial является хорошим руководством относительно того, как использовать операторы if и другие средства управления потоком.

+1

Или еще лучше 'dict'-dispatch:' {'calc': calculator, 'talk': chat} [choice]() ', то, по крайней мере, если это неверно, d получить исключение –

Смежные вопросы