Crossin的编程教室

标题: 习题9 疑问 [打印本页]

作者: felixd2004    时间: 2020-1-11 21:57
标题: 习题9 疑问
以下是我刚上手写的代码,

# coding: gbk
print('输入三个数字,输出这三个数的最大值')
a = input()
b = input()
c = input()

if a>b:
    if a>c:
        print(a)
    if c>a:
        print(c)

if b>a:
    if b>c:
        print(b)
    if c>b:
        print(c)


如果开始赋值a/b/c,不加int(),当输入3、90、111,输出为90,原因是什么?;加int()输出正确,但不能输入带小数点的4.6值进去,用参考答案会有同样问题。
虽然可以通过保留输入数字后两位小数点的代码解决,但好奇原因

作者: crossin先生    时间: 2020-1-13 00:09
int是转成整数类型
不加int是字符串,+是吧字符拼在一起
要用小数可以用 float 替代 int,表示小数类型
作者: felixd2004    时间: 2020-1-13 15:57
crossin先生 发表于 2020-1-13 00:09
int是转成整数类型
不加int是字符串,+是吧字符拼在一起
要用小数可以用 float 替代 int,表示小数类型 ...

先生,你的参考答案是加了int的,但你提供的比大小参数是4、4.6、3,输入4.6会报错的,是不是要改下参考答案成float。

另外不加int是字符串,我用3、90、111三个数字,输出的一直都是90,无论是用参考答案的代码,去掉int()后 或是用我以上的代码,90比3跟111都大么?
作者: crossin先生    时间: 2020-1-14 16:08
felixd2004 发表于 2020-1-13 15:57
先生,你的参考答案是加了int的,但你提供的比大小参数是4、4.6、3,输入4.6会报错的,是不是要改下参考 ...

嗯,答案已改。要处理小数就要用 float

字符串比大小是按字母顺序,不是按大小,字符9比3和1都更靠后




欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5