python 比较大小

发布网友 发布时间:2022-04-23 15:28

我来回答

5个回答

懂视网 时间:2022-04-06 18:41

Python的字符串比较与Java类似,也需要一个比较函数,而不能用==符号。用cmp()方法来比较两个对象,相等返回 0 ,前大于后,返回 1,小于返回 -1。

例子:

a = "abc"
b = "abc"
c = "aba"
d = "abd"
print cmp(a,b)
print cmp(a,c)
print cmp(a,d)

返回

0
1
-1

热心网友 时间:2022-04-06 15:49

  注意比较字符串和比较数字不一样,需要手动将字符串转换为整数。


  字符串比较不看数字大小,而是看字符的ascii码顺序。raw_input得到的数据是字符串,字符串3其实是大于字符串21的。所以这里如想正确比较,就必须把字符串转为数字。


我修改了你的程序:

def printMax(a, b):
    if a > b:
        print a, 'is maximum'
    else:
        print b, 'is maximum'

#printMax(3, 4) # directly give literal values

x = int(raw_input("x"))
y = int(raw_input("y"))

printMax(x, y) # give variables as arguments

 

望采纳,请按下面评论的时间采纳,谢谢支持!

热心网友 时间:2022-04-06 17:07

x = raw_input("x");
y = raw_input("y");
得到的x和y是字符串string类型的,字符串比较是按字符比较的,'3'比'2'大
按照你的意图应该是把输入转换为int型变量才能比较,
可以改为
x = int(raw_input("x"))
y = int(raw_input("y"))

还有提醒你一下,python里面语句结束是没有分号的

热心网友 时间:2022-04-06 18:42

# another idea:

def maxium(*args):
return max(args)

def getInteger(prompt):
while 1:
try:
return int(raw_input(prompt))
except:
continue

print maxium(3,4)
print "max is:", maxium(getInteger("x:"), getInteger("y:"))

热心网友 时间:2022-04-06 20:33

raw_input()返回的是字符串

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com