minliang320 发表于 2022-10-22 18:52:38

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
第一个数比第二个数小
打完收工!
>>>

这是为什么?

wp231957 发表于 2022-10-22 18:55:03

你试一试3和10看看谁大

青出于蓝 发表于 2022-10-22 18:57:58

字符串的比较操作:
      运算符:>,>=,<,<=,==,!=
      比较规则:首先比较两个字符串中的第一个字符,如果相等则继续比较下一个字符,依次比较下去,直到两个字符串中的字符不相等时,其比较结果就是两个字符串的比较结果,两个字符串中的所有后续字符将不再被比较
      比较原理:两字符进行比较时,比较的是其ordinal value(原始值),调用内置函数ord可以得到指定字符的ordinal value(ASCII码)。与内置函数ord对应的是内置函数chr,调用内置函数chr时指定ordinal value可以得到其对应的字符

acid-lemon 发表于 2022-10-22 18:58:40

本帖最后由 acid-lemon 于 2022-10-22 19:00 编辑

字符串也可以比较大小,比较的是ascii码

zy8818 发表于 2022-10-22 19:14:31

num1 = input("请输入第一个数:")
num2 = input("请输入第二个数:")
if int(num1) < int(num2):#此处应该转换成int整数对比大小,不转换是比较字符串的字符

不转换的话你比一下33和6 肯定是33小
请输入第一个数:33
请输入第二个数:6
第一个数比第二个数小
打完收工!
原因3的字符比6的字符小
你感觉数字33比6小吗?
就看你怎么用了

叼辣条闯世界 发表于 2022-10-22 19:56:18

字符串比较的是acsii码
页: [1]
查看完整版本: input函数不是返回的都是字符串类型吗?