从本例学到什么
- 在一行中输入多个数的做法:
- 在一行中输入多个整数。例如,用户在键盘敲入的一行有4个整数: 3 44 8 99,程序该如何接收这4个整数?
- 在一行中输入多个浮点数。例如,用户在键盘敲入如下一行内容: 2.5, 7.8, 1.1,这一行有3个浮点数。程序该怎么接收这3个数?
- 在一行中输入多个字符串。例如,用户在键盘敲入如下一行内容: Li Guo Huang,这一行有3个姓名。程序该怎么接收这3个姓名?
实例程序
题目描述
给定三角形三条边的边长,求三角形面积。
输入格式:
一行内有三个实数分别表示三角形的三条边,中间有空格隔开。
输出格式:
输出此三角形面积。保留三位小数。
输入样例:
3 3 3
输出样例:
3.897
上述题目的解答
#1. 读入3条边的长度
a, b, c = input().split() #读入一行中的3个数字子串
a = float(a) #转换为浮点数
b = float(b)
c = float(c)
#2. 用海伦公式求三角形面积
p = (a + b + c) / 2
import math #导入math模块,math模块包含多个数学计算函数。
s = math.sqrt(p * (p-a) * (p-b) * (p-c)) #调用math模块内的sqrt函数,作用是求平方根
#3. 输出三角形面积
print("%.3f"%s) #%.3f是格式化描述符,表明输出一个浮点数,.3表示保留3位小数。
知识点讲解
在一行中读入多个数的做法:
- 读入一行,并用split函数分成多个子串。
上例中,a, b, c = input().split()的执行过程是:首先执行input()读入一行,接着执行split(),以空格作为分隔符把读入的内容切分成3个子串,然后把第1, 2, 3个子串赋值给变量a, b, c。
注意,所读入的一行中必须包含由空格隔开的3个子串。多一个少一个都不行,否则程序运行到第一条语句就出错。
语句“a, b, c = input().split()”等价的写法是:
line = input()
a, b, c = line.split() - 把子串转换为合适的类型。
上例中,a = float(a)是把数字字符串a转换为浮点数a。 - 在一行输入中读入4个浮点数的做法。
比如,这一行输入是:2.1, 3.2, 4.8, 9.11,数字之间用逗号分隔。
读入这4个浮点数的语句是:
f1, f2, f3, f4 = input().split(',') #split()内的参数是逗号
f1 = float(f1)
f2 = float(f2)
f3 = float(f3)
f4 = float(f4)
- 在一行中读入多个字符串的做法。
例如,用户在键盘敲入如下一行内容: Li Guo Huang,这一行有3个姓名。输入这3个姓名的做法是:
name1, name2, name3 = input().split() - 后续文章将讲述如何在一行输入中读入一组数,存入列表中。
小结
- 一行中读入多个数的做法是:
(1)读入一行,
(2)用split函数分成多个子串,
(3)把各个子串转换为合适的类型。