程序和人交换信息,无非是把结果送出去给人看,以及把人给的数据读进来。输出靠 print,输入靠 input,写的时候尤其要盯住一点:input 的返回值永远是字符串。

print:输出

print() 一次可以输出多个值,默认用空格隔开,末尾再自动换行:

print("Python", "is", "fun")
print("第一行")
print("第二行")

输出:

Python is fun
第一行
第二行

控制分隔符和结尾

不想用默认空格或换行时,用 sep 改参数之间的分隔符,用 end 改整次打印的结尾字符:

print("a", "b", "c", sep="-")     # a-b-c
print("第一行", end=" ")
print("还在同一行")                 # 第一行 还在同一行

input:输入

input(prompt) 会先打印提示语,再读入一行用户输入,返回值一定是字符串,即便你看起来像在敲数字:

name = input("请输入你的名字: ")
print("你好," + name)

运行效果(用户输入 小明):

请输入你的名字: 小明
你好,小明

先转换再算数

新手最容易忽略的是:input 给回来的始终是字符串,拿去直接做算术或跟数字相加,往往会 TypeError。需要算数时,先用 int() 或 float() 转类型:

# age = input("年龄: ")
# print(age + 1)      # TypeError: can only concatenate str

# 正确做法:先转换
age = int(input("年龄: "))
print("明年你", age + 1, "岁")

完整示例:计算器

把两次输入都转成 float 之后,再做加减乘除就顺了:

a = float(input("输入第一个数: "))
b = float(input("输入第二个数: "))

print(a, "+", b, "=", a + b)
print(a, "*", b, "=", a * b)

输出示例:

输入第一个数: 5
输入第二个数: 3
5.0 + 3.0 = 8.0
5.0 * 3.0 = 15.0

常用小技巧

  • 一次输入多个值用 split:a, b = input).split()(默认按空格分割)。
  • 读取后的字符串用 .strip() 去掉首尾空白:name = input().strip)。
  • print 里想混字符串和数字,要么全转 str,要么用逗号让 print 自己拼。

自测一题

写个程序让用户输入姓名和成绩(成绩转 float),再输出姓名以及成绩是否及格(>=60)。这两步能独立写出来,输入输出这一块就算过关了。

Python 输入输出自测:姓名与成绩判断运行
name, score = input('请输入姓名和成绩(空格分隔): ').split()
score = float(score)
if score >= 60:
    print(f'{name} 及格了,成绩 {score}')
else:
    print(f'{name} 不及格,成绩 {score}')