input函数不是返回的都是字符串类型吗?
下面这个小程序里我并没有对input函数的输入做int转换为整数:num1 = input("请输入第一个数:")
num2 = input("请输入第二个数:")
if num1 < num2:
print("第一个数比第二个数小")
else:
if num1 > num2:
print("第一个数比第二个数大")
else:
print("这俩数一般大")
print("打完收工!")
#但是程序执行起来,做数字比较也可以执行,下面是执行结果:
Python 3.6.3 (v3.6.3:2c5fed8, Oct3 2017, 18:11:49) on win32
Type "copyright", "credits" or "license()" for more information.
>>>
============ RESTART: D:/360MoveData/Users/Think/Desktop/俩数比较.py ============
请输入第一个数:3
请输入第二个数:6
第一个数比第二个数小
打完收工!
>>>
这是为什么?
你试一试3和10看看谁大 字符串的比较操作:
运算符:>,>=,<,<=,==,!=
比较规则:首先比较两个字符串中的第一个字符,如果相等则继续比较下一个字符,依次比较下去,直到两个字符串中的字符不相等时,其比较结果就是两个字符串的比较结果,两个字符串中的所有后续字符将不再被比较
比较原理:两字符进行比较时,比较的是其ordinal value(原始值),调用内置函数ord可以得到指定字符的ordinal value(ASCII码)。与内置函数ord对应的是内置函数chr,调用内置函数chr时指定ordinal value可以得到其对应的字符 本帖最后由 acid-lemon 于 2022-10-22 19:00 编辑
字符串也可以比较大小,比较的是ascii码 num1 = input("请输入第一个数:")
num2 = input("请输入第二个数:")
if int(num1) < int(num2):#此处应该转换成int整数对比大小,不转换是比较字符串的字符
不转换的话你比一下33和6 肯定是33小
请输入第一个数:33
请输入第二个数:6
第一个数比第二个数小
打完收工!
原因3的字符比6的字符小
你感觉数字33比6小吗?
就看你怎么用了 字符串比较的是acsii码
页:
[1]