我现在正在上一个关于codecademy的python课程,并决定尝试从终端在我的计算机上运行一个简单的程序。
我创建了一个基于简单if,elif,else语句的基本程序,非常简单的代码,因为我正在努力强化我正在学习的基础知识,目标是形成一个响应,如果你有超过49个学分,你会得到祝贺等等......
firstName = raw_input("Enter your first name: ")
lastName = raw_input("Enter your last name: ")
excellenceCredits = raw_input("Enter the amount of excellence credits
you have so far: ")
if excellenceCredits > 49 and len(firstName) >= 10:
print "Well done " + firstName + " " + lastName + " on the
excellence endorsement, feel proud! You also have an impressive long
name!"
elif excellenceCredits > 49 and len(firstName) < 10:
print "Well done " + firstName + " " + lastName + " on the
excellence endorsement, feel proud!"
elif excellenceCredits < 50 and excellenceCredits > 40:
print "So close " + firstName + ", better luck next time, I bet
the " + lastName + "s are so proud of you!"
else:
print "Keep working hard, you never know what's around the corner..."
问题是每当我从终端运行程序并输入小于50的excellenceCredits值时,它仍会输出错误的响应,这可能非常简单,但我只是看不出代码的错误。
答案 0 :(得分:2)
raw_input
将用户的输入解析为str
类型,而不是int
。
尝试:
int(raw_input("Enter the amount of excellence credits you have so far: "))
接近你想要的行为。
答案 1 :(得分:0)
看起来你要将整数(49,50等)与excellenceCredits
的字符串值进行比较。 This answer有更多详情。
要将raw_input
作为整数进行比较,请将其转换为内置函数int
进行转换:
excellenceCredits = int(raw_input("Enter the amount..."))
答案 2 :(得分:0)
你正在进行一个好方法,只需要在你需要raw_input
int
数据类型时注意。
当数据类型为int
时,您需要执行以下操作。
excellenceCredits = int(raw_input("Enter the amount of excellence credits
you have so far: "))
Python 2.x. 获取用户输入有两个函数,称为
input
和raw_input
。区别在于,raw_input
不评估数据并以字符串形式返回。但是,input
将评估您输入的内容,并返回评估结果。
raw_input
为您提供了一个字符串,您必须在进行任何数字比较之前将其转换为integer
或float
。
Python 3.x
Python 3.x
的{{1}}和input
的{{1}}相似,而Python 2.x
中没有raw_input
。