零基础学Python编程(少儿趣味版)
上QQ阅读APP看书,第一时间看更新

1.8.4 input结果的类型

前面这个输出结果可能不尽如人意,因为它并没有告诉我们1 + 2等于几。这是因为input会将用户的任何输入都原样转换成字符串。1 + 2被转换成“1 + 2”,当然不会计算出什么结果。如果想要计算结果,还得对程序做一些处理。西西船长说着,又创建了另一个程序,保存在C:\Workspace\1.8\in_out.py,代码如下:


#用户输入
x=int(input("hello,我是kiri,请输入一个整数。(按回车键发送): "))
y=int(input("hello,我是kiri,请再输入一个整数。(按回车键发送): "))

print("%d+%d的结果是%d:"%(x,y,x+y))

int()方法的括号把整个input()部分都包含在内,它表示把input()获取到的用户输入转换成整数类型,然后再将这个整数赋值给变量x。同样的,把另一个用户的输入转换成整数,再赋值给y。这样,在print()中的x + y就会计算两个整数的和了。

运行程序,结果如图1-22所示。

图1-22 将用户输入的内容进行类型转换

需要注意的是,input()的结果是字符串,而字符串并不能转换成所有类型。比如,如果用户不按照提示信息来输入,可能会出现错误。


hello,我是kiri,请输入一个整数。(按回车键发送): 我偏不
Traceback (most recent call last):
    File "C:\Workspace\1.8\in_out.py", line 2, in <module>
        x=int(input("hello,我是kiri,请输入一个整数。(按回车键发送): "))
ValueError: invalid literal for int() with base 10: '我偏不'

IDLE会告诉你“我偏不”这个字符串无法被int()转换。

【练一练】

让用户输入一个代表金额的数字,然后将它格式化并输出,要求以“RMB”字符串开头,左对齐,保留2位小数。