字符串的输出与输入
在实际开发中,程序经常需要用户输入字符串并进行处理。字符串被处理完成后,又需要输出显示。上述过程就涉及到字符串的输入与输出。
字符串的输出
最简单的字符串输出如下所示:
print("sunyuyu") # 输出sunyuyu
此外,Python支持字符串格式化输出,具体示例如下:
age = 18
print("隼与鱼的年龄为%d"%age) # 输出隼与鱼的年龄为18
字符串格式化是指按照指定的规则连接、替换字符串并返回新的符合要求的字符串,例如示例中age的内容18以整数形式替换在要显示的字符串中。字符串格式化的语法格式如下:
format_string % string_to_convert
format_string % (string_to_convert1, string_to_convert2, ...)
其中,format_string为格式标记字符串,包括固定的内容与待替换的内容,待替换的内容用格式化符号标明,string_to_convert为需要格式化的数据。如果需要格式化的数据是多个,则需要使用圆括号括起来并用逗号分隔。format_string中常用的格式化符号如下表所示。
格式化符号 | 说明 |
---|---|
%c | 格式化字符 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整型 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数(十六进制字母小写) |
%X | 格式化无符号十六进制数(十六进制字母大写) |
%f或%F | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数(e使用小写显示) |
%E | 用科学计数法格式化浮点数(E使用大写显示) |
%g | 由Python根据数字的大小自动判断转换为%e或%f |
%G | 由Python根据数字的大小自动判断转换为%E或%F |
%% | 输出% |
接下来演示格式化符号的用法,如下所示。
1 name, age, id, score = "隼与鱼", 18, 1, 98
2 print("学号:%d\n姓名;%s\n年龄:%d\n成绩:%f"\
3 %(id, name, age, score))
运行结果如下图所示。

在上例中,第1行定义4个变量,分别为name、age、id、score。第2行在print()函数中格式标记字符串,第3行为需要格式化的数据。
除了上表中的格式化符号,有时需要调整格式化符号的显示样式,例如是否显示正值符号“+”,下表列出了辅助格式化符号。
辅助格式化符号 | 说明 |
---|---|
* | 定义宽度或小数点的精度 |
- | 左对齐 |
+ | 对正数输出正值符号“+” |
# | 在八进制数前显示0,在十六进制前显示0x或0X |
m.n | m是显示的最大总宽度,n是小数点后的位数 |
<sp> | 数字的大小不满足m.n时,用空格补位 |
0 | 数字的大小不满足m.n时,用0补位 |
接下来演示辅助格式化符号的用法,如下所示。
1 a, b = 88, 3.141592653
2 print("%#10x"%a)
3 print("%-#10X"%a)
4 print("%+d"%a)
5 print("%5.5f"%b)
6 print("%*.5f"%(5, b))
7 print("%5.*f"%(5, b))
运行结果如下图所示。

在上例中,第2行输出字符串宽度为10,并且以0x形式显示88对应的十六进制数,注意默认是右对齐的。第3行输出字符串宽度为10,并且以0X形式显示88对应的十六进制数,注意“-”代表左对齐。第4行输出字符串中正值时前加“+”。第5行输出字符串宽度为5,显示的小数点精度为5。第6行通过*设置显示宽度为5。第7行通过*设置小数点精度为5。
字符串的输入
上述程序中,字符串都是先定义后使用。如果需在程序运行时,通过键盘输入字符串,则可以使用input()函数。它表示从标准输入读取一行文本,默认的标准设备是键盘,其语法格式如下:
input([prompt])
其中,prompt表示提示字符串,该函数将输入的数据作为字符串返回。
接下来演示其用法,如下所示。
1 name = input("请输入用户名:")
2 pwd = input("请输入密码:")
3 print("用户%s的密码为%s"%(name, pwd))
4 print(type(name))
5 print(type(pwd))
运行结果下图所示。

在上例中,第1行与第2行分别通过input()函数从键盘输入字符串并通过变量名引用相应的字符串。第3行输出字符串。从运行结果可看出,当从键盘输入66666666时,pwd最终的数据类型为字符串类型。
网友评论