哎,说到Python怎么输入数字,这事儿我太有感触了。刚开始学的时候,看着那些花花绿绿的代码,头都大了。别说输入数字了,print个”Hello World”都得小心翼翼,生怕哪个符号敲错了。
但没办法,谁让咱选择了这条路呢!硬着头皮啃呗。慢慢地,就发现其实Python输入数字并没有想象中那么可怕,反而还挺灵活的。
最基础的,当然就是input()
函数了。这玩意儿简单粗暴,直接从键盘读取输入,然后返回一个字符串。
python
num_str = input("请输入一个数字:")
print(num_str)
运行这段代码,屏幕上会显示 “请输入一个数字:”,然后你就可以在后面输入任何东西,回车之后,num_str
变量就会存储你输入的内容。
但是!这里有个大坑。input()
函数返回的是字符串!字符串!字符串!重要的事情说三遍。如果你想拿这个输入做加减乘除,那肯定会报错,因为它会把你输入的东西当成文本来处理,而不是数字。
那怎么办呢?别慌,Python 提供了两个函数:int()
和 float()
。
int()
可以把字符串转换成整数。
python
num_str = input("请输入一个整数:")
num_int = int(num_str)
print(num_int + 10) # 可以正常进行加法运算了
float()
可以把字符串转换成浮点数(也就是带小数点的数)。
python
num_str = input("请输入一个浮点数:")
num_float = float(num_str)
print(num_float * 2.5) # 浮点数乘法
你看,是不是很简单?但是!还是有坑。如果你输入的是 “abc” 这样的非数字字符串,int()
和 float()
就会毫不留情地抛出一个 ValueError
异常,程序就崩溃了。
所以,在进行类型转换之前,最好先判断一下输入是否是合法的数字。这可以用 try...except
语句来实现。
python
try:
num_str = input("请输入一个数字:")
num_int = int(num_str)
print("你输入的数字是:", num_int)
except ValueError:
print("输入错误!请输入数字!")
这段代码会先尝试把输入转换成整数,如果转换失败(也就是发生了 ValueError
异常),就会执行 except
里面的代码,打印错误信息。这样,程序就不会因为输入错误而崩溃了。
当然,你也可以用更复杂的正则表达式来判断输入是否符合数字的格式,但这有点杀鸡用牛刀了,对于简单的Python数字输入来说,try...except
就足够了。
还有一种情况,就是你需要一次性输入多个数字,比如用空格隔开。这个时候,你可以用 split()
函数来分割字符串。
python
input_str = input("请输入两个数字,用空格隔开:")
num1_str, num2_str = input_str.split()
num1 = int(num1_str)
num2 = int(num2_str)
print("两个数字的和是:", num1 + num2)
split()
函数默认以空格为分隔符,把字符串分割成多个子字符串,然后你可以把这些子字符串分别转换成数字。
如果你想用其他分隔符,比如逗号,可以在 split()
函数里面指定:
python
input_str = input("请输入两个数字,用逗号隔开:")
num1_str, num2_str = input_str.split(",")
num1 = int(num1_str)
num2 = int(num2_str)
print("两个数字的乘积是:", num1 * num2)
看到了吧,灵活得很!
不过话说回来,实际开发中,Python输入数字的应用场景可不止这些。比如,你可能需要从文件中读取数字,或者从网络上获取数据。
从文件读取数字,可以用 open()
函数打开文件,然后逐行读取,再把每一行转换成数字。
python
with open("numbers.txt", "r") as f:
for line in f:
try:
num = float(line.strip()) # strip() 去除行尾的空白字符
print(num)
except ValueError:
print("文件中有非数字内容!")
这段代码会打开名为 “numbers.txt” 的文件,逐行读取,并把每一行转换成浮点数。如果遇到非数字内容,就会打印错误信息。
从网络上获取数据,可以用 requests
库(如果没安装,需要先 pip install requests
)来发送 HTTP 请求,然后把返回的 JSON 数据解析出来,提取出数字。
“`python
import requests
import json
url = “https://api.example.com/data” # 替换成真实的 API 地址
try:
response = requests.get(url)
response.raise_for_status() # 检查请求是否成功
data = response.json() # 解析 JSON 数据
numbers = data["numbers"] # 假设 JSON 数据中有一个名为 "numbers" 的列表,包含数字
for num in numbers:
print(num)
except requests.exceptions.RequestException as e:
print(“网络请求错误:”, e)
except json.JSONDecodeError as e:
print(“JSON 解析错误:”, e)
except KeyError as e:
print(“JSON 数据格式错误,缺少键:”, e)
“`
这段代码会从指定的 API 地址获取 JSON 数据,然后提取出 “numbers” 列表中的数字。当然,具体的代码需要根据 API 的返回格式来调整。
总而言之,Python 输入数字的方法有很多,关键在于理解 input()
函数的特性,以及 int()
和 float()
函数的用法,还有就是异常处理。只要掌握了这些,就能灵活应对各种输入情况。
哎,说了这么多,感觉又回到了当年刚学 Python 的时候。虽然现在已经能熟练地用 Python 做各种事情了,但还是忘不了当初那种懵懂和兴奋。希望这些经验能帮到正在学习 Python 的你,加油!