程序和人交换信息,无非是把结果送出去给人看,以及把人给的数据读进来。输出靠 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)。这两步能独立写出来,输入输出这一块就算过关了。
name, score = input('请输入姓名和成绩(空格分隔): ').split()
score = float(score)
if score >= 60:
print(f'{name} 及格了,成绩 {score}')
else:
print(f'{name} 不及格,成绩 {score}')