Python新手并立即混淆

时间:2017-04-14 04:17:15

标签: python

我现在正在上一个关于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值时,它仍会输出错误的响应,这可能非常简单,但我只是看不出代码的错误。

3 个答案:

答案 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.   获取用户输入有两个函数,称为inputraw_input。区别在于,raw_input不评估数据并以字符串形式返回。但是,input将评估您输入的内容,并返回评估结果。

raw_input为您提供了一个字符串,您必须在进行任何数字比较之前将其转换为integerfloat

  

Python 3.x

Python 3.x的{​​{1}}和input的{​​{1}}相似,而Python 2.x中没有raw_input