从本例学到什么

  1. 在一行中输入多个数的做法:
  • 在一行中输入多个整数。例如,用户在键盘敲入的一行有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位小数。

知识点讲解

在一行中读入多个数的做法:

  1. 读入一行,并用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()
  2. 把子串转换为合适的类型。
    上例中,a = float(a)是把数字字符串a转换为浮点数a。
  3. 在一行输入中读入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)
  1. 在一行中读入多个字符串的做法。
    例如,用户在键盘敲入如下一行内容: Li Guo Huang,这一行有3个姓名。输入这3个姓名的做法是:
    name1, name2, name3 = input().split()
  2. 后续文章将讲述如何在一行输入中读入一组数,存入列表中。

小结

  1. 一行中读入多个数的做法是:
    (1)读入一行,
    (2)用split函数分成多个子串,
    (3)把各个子串转换为合适的类型。