2015-01-31 5 views
1

Ниже приведен сценарий, который я пытаюсь написать. Я создал другие рабочие скрипты, в том числе простые скрипты if-statement, но мне захотелось немного поэкспериментировать и попробовать создать скрипт, который опирается на строковые входы вместо целых чисел или float.Python2 word input if-statement script

Само собой разумеется, что я все еще участвую и не требую, чтобы это выполняло мою работу, но спасибо за попытку, если вы решите взломать его. Я провел около часа с другим новичком-кодером, пытающимся выполнить крошечные корректировки. Я почти уверен, что бесполезно, чтобы исходный текст был таким же, как и начальная строка, создавая мою борьбу.

answer = raw_input("Do you enjoy your work?\n") 

print str(answer) 
if answer = str("yes") : 
    print "I'm happy to hear that, " + str(name)" 
    print "I wonder what being a " + str(title) + " actually means." 
    print "I don't have the term in my vocabulary. I'm a machine." 
    raw_input("My script is over soon. Goodbye.\n") 
else : 
    print "I'm sorry to hear that, " + str(name)" 
    print "I guess being a " + str(title) + " must be difficult." 
    raw_input("My script is over soon. Goodbye.\n") 
+3

ответ == "да". Ваше намерение - проверить условие, но вы назначаете значение «да» для ответа. – ajkumar25

+0

О, и это не весь скрипт, просто часть, которая не работает. Если вы хотите проверить его самостоятельно, просто удалите части, которые говорят + str (имя) и + str (название). ajkumar25 придумал ту же ошибку, что и я весь день. Спасибо за быстрый ответ, хотя! –

+1

raw_input() возвращает как строку, не нужно переустанавливать. –

ответ

3

raw_input возвращает строку, уже, так что вам не нужно, чтобы преобразовать его в строку снова. Нет необходимости str("yes") это.

Также ваше намерение ошибочно. Это должно быть;

if answer == "yes": 

Весь ваш сценарий должен быть таким;

from time import sleep 
answer = raw_input("Do you enjoy your work?\n") 

print answer 
if answer == "yes": 
    print "I'm happy to hear that, " + name)" 
    print "I wonder what being a " + title + " actually means." 
    print "I don't have the term in my vocabulary. I'm a machine." 
    print ("My script is over soon. Goodbye.\n") 
    sleep(2) 
else : 
    print "I'm sorry to hear that, " + name" 
    print "I guess being a " + title + " must be difficult." 
    print ("My script is over soon. Goodbye.\n") 
    sleep(2) 

Используется sleep функция от time модуля. Таким образом, он будет ждать, какие секунды вы хотите, как видите, сейчас 2 секунды sleep(2)

Также вы можете использовать функцию format() для размещения как;

print "I'm sorry to hear that {} ".format(name) 

Это моя любимая функция, так как это довольно полезно, проверить его here

+0

название и имя являются входами, поэтому их не нужно снова наматывать. –

+0

@JonesCrimson True спасибо за предупреждение, я забыл их исправить :) Но в ваших кодах они были такими, как – GLHF

+1

Я бы оценил ваш ответ как полезный, если бы у меня была репутация. –

0

Вот правильная версия:

answer = raw_input("Do you enjoy your work?\n") 

print answer 
if answer == "yes" : # use == to judge string equals but not = 
    print "I'm happy to hear that, " + str(name) 
    print "I wonder what being a " + str(title) + " actually means." 
    print "I don't have the term in my vocabulary. I'm a machine." 
    raw_input("My script is over soon. Goodbye.\n") 
else : 
    print "I'm sorry to hear that, " + str(name) 
    print "I guess being a " + str(title) + " must be difficult." 
    raw_input("My script is over soon. Goodbye.\n") 

В коде ваш if это неправильно, вы должны использовать == заменить = , код, как это:

ans = raw_input("input word:") 
if ans = 'yes': 
    print 'yes' 
else: 
    print 'no' 

является SyntaxError: invalid syntax

+0

Проблема, в верхней части ==, заключалась в том, что я вставлял входы. –

2

2 вещи, чтобы вы и работает

if answer = str("yes") : 

неправильно это будет присвоить строку «да», чтобы ответить. Как бы то ни было, он не будет работать. Используйте

if answer == "yes" : 

принять Также прочь ненужные кавычки в конце

print "I'm happy to hear that, " + str(name)" 

вместо

print "I'm happy to hear that, " + name 

Вы должны заключить только строковые литералы в кавычках, и вы обычно имеют четное число цитат.

Последнее, что все эти вызовы str не требуются, если значение уже является строкой. Он будет работать так, но вы делаете ненужную работу.

2

Вот полный скрипт в полном объеме.Я набирал входы, когда мне не приходилось, как идиот. У меня также было 3 опечатки, чтобы исправить.

print "Hello. I'm a program made to ask generic questions and reply." 
print "I'm not advanced enough to react to questions I'm asked." 
print "If I had to pick a name for myself, it would be Dan." 
name = raw_input("What is your name?\n") 

title = raw_input("You already know what I do for work. What is your official title?\n") 

answer = raw_input("Do you enjoy your work?\n") 

if answer == str("yes") : 
    print "I'm happy to hear that, " + name 
    print "I wonder what being a " + title + " actually means." 
    print "I don't have the term in my vocabulary. I'm a machine." 
    raw_input("My script is over soon. Goodbye.\n") 
else : 
    print "I'm sorry to hear that, " + name 
    print "I guess being a " + title + " must be difficult." 
    raw_input("My script is over soon. Goodbye.\n")