Python的输入函数input()和输出函数print()详解

输入函数input()

Python 提供了 input() 内置函数从标准输入(键盘)读入一行文本,默认的标准输入是键盘。

input()函数等待用户从键盘输入,接收一个字符串,包括空格,都可以输入。只有回车不接受,作为结束符。格式:

input([prompt])

其中,prompt是可选的,可作为提示信息。

返回值是从键盘输入的一行文本。

用户输入的任何内容Python 都认为是一个字符串,如果需要其他类型就需要转换函数,如:

float()  字符串或者整数-->浮点型

int()   字符串或浮点型-->整数型

str()   数字-->字符串

eval()  数字-->实数

chr()    ASCII值-->ASCII字符

例如:

a = input("请输入字符串:")

b= int(input(("请输入一个整数:")))

c = float(input("请输入一个数值:"))

输出函数print()

语法

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

将 objects 打印到 file 指定的文本流,以 sep 分隔并在末尾加上 end。可选项 sep, end, file 和 flush 如果存在,它们必须以关键字参数的形式给出。

参数描述

objects 要输出的对象,是复数形式,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。

sep 用来间隔多个对象,默认值是一个空格。

end 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。

file    要写入的文件对象,默认是标准输出。

flush   输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流会被强制刷新。

print()无返回值。

下面给出Print()内置函数基本示例源码:

print(1)#输出:1
print("Hello World") #输出:Hello World
a= 10
b= "Hi"
print(a,b) #输出:10 Hi
print("aaa""bbb") #输出:aaabbb
print("aaa","bbb") #输出:aaa bbb
print("aaa","bbb",sep=".")  # 设置间隔符,输出:aaa.bbb

运行效果如下图:

inPUT python 输入框 python输入input函数_python

如何使用print()输出多个不同数据类型的数据

★用str函数统一成字符串,如:

age = 10

print("他今年" + str(age) + " 岁.")

★数据的格式化输出【 c语言printf 风格的字符串格式化 官方介绍 https://docs.python.org/zh-cn/3/library/stdtypes.html#old-string-formatting 】

 

描述

%c

 格式化字符及其ASCII码

%s

 格式化字符串

%d

 格式化整数

%u

 格式化无符号整型

%o

 格式化无符号八进制数

%x

 格式化无符号十六进制数

%X

 格式化无符号十六进制数(大写)

%f

 格式化浮点数字,可指定小数点后的精度

%e

 用科学计数法格式化浮点数

%E

 作用同%e,用科学计数法格式化浮点数

%g

 %f和%e的简写

%G

 %f 和 %E 的简写

%p

 用十六进制数格式化变量的地址

格式化操作符辅助指令:

符号

功能

*

定义宽度或者小数点精度

-

用做左对齐

+

在正数前面显示加号( + )

<sp>

在正数前面显示空格

#

在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')

0

显示的数字前面填充'0'而不是默认的空格

%

'%%'输出一个单一的'%'

(var)

映射变量(字典参数)

m.n.

m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

例子

s='小兵'

x=11

print('%s明年%d岁' %(s,x))

inPUT python 输入框 python输入input函数_python_02


★format函数/方法官方参考

 内置format()函数https://docs.python.org/zh-cn/3/library/functions.html#format  格式(format)字符串语法 https://docs.python.org/zh-cn/3/library/string.html#formatstrings  字符串 format() 方法(Method)例子https://docs.python.org/zh-cn/3/tutorial/inputoutput.html#the-string-format-method 

函数print()和函数format()结合起来实现格式化输出,功能比较强大。

先给出基本示例:

print('李振兴告诉{}说 "{}!"'.format('赵萌萌', '加油'))

print('{0}和{1}是好朋友!'.format('李振兴', '赵萌萌'))

print('{1}和{0}是好朋友!'.format('李振兴', '赵萌萌'))

花括号及之内的字符(称为格式字段)被替换为传递给 str.format()方法的对象。花括号中的可有数字,花括号中的数字表示传递给 str.format() 方法的对象所在的位置。

inPUT python 输入框 python输入input函数_inPUT python 输入框_03


 format()函数格式:

str.format(*args, **kwargs)

执行字符串格式化操作。 调用此方法的字符串可以包含字符串字面值或者以花括号 {} 括起来的替换字段(replacement field)。 每个替换字段可以包含一个位置参数的数字索引【3.1 版起索引可以省略】,或者一个关键字参数的名称。 返回的字符串副本中每个替换字段都会被替换为对应参数的字符串值。如:

print(" 1 + 2 的和是{0}".format(1+2)) #输出:1 + 2 的和是3

花括号及其里面的字符【称作替换字段(replacement field)或格式化字段(format fields),】将会被 format() 中的参数替换。

再给出几个示例

☆利用key=value来实现一一对应的赋值替换,如:

print('{name}正在{option}'.format(name="某某",option="学习")) #输出:某某正在学习

☆按照位置实现顺序替换,如:

print('{0}正在{1}'.format('某某','学习')) #输出:某某正在学习

print('{1}正在{0}'.format('学习','某某')) #输出:某某正在学习

替换字段中用到的标准格式说明符 【参加 官方 https://docs.python.org/zh-cn/3/library/string.html#formatspec 】

[:[[fill] align] [sign] [#] [width] [.precision] [type]]

用 [] 括起来的参数都是可选参数,英文冒号:之的部分后部分——标准格式说明符简介:

☆fill:空白处填充的字符。注意,当填充字符为逗号(,)且作用于整数或浮点数时,该整数(或浮点数)会以逗号分隔的形式输出,例如(1000000会输出 1,000,000)。

☆align:指定数据的对齐方式,具体的对齐方式如下所示:

<       数据左对齐。

>       数据右对齐。

=       数据右对齐,同时将符号放置在填充内容的最左侧,该选项只对数字类型有效。

^       数据居中。

此选项需和 width 参数一起使用,如:print('{0:^30}{1:^30}'.format("某某",90))

☆sign 选项仅对数字类型有效,可以是以下之一:

+               正数前加正号,负数前加负号。

-                正数前不加正号,负数前加负号。

空格          正数前加空格,负数前加负号。

☆#  对于二进制数、八进制数和十六进制数,使用此参数,各进制数前会分别显示 0b、0o、0x前缀;反之则不显示前缀。

☆width:指定输出数据时所占的宽度。

☆.precision:指定保留的小数位数。

☆type:指定输出数据的具体类型:

s                对字符串类型格式化。

d               十进制整数。

c                将十进制整数自动转换成对应的 Unicode 字符。

e 或者 E    转换成科学计数法后,再格式化输出。

g 或 G       自动在 e 和 f(或 E 和 F)中切换。

b                将十进制数自动转换成二进制表示,再格式化输出。

o                将十进制数自动转换成八进制表示,再格式化输出。

x 或者 X    将十进制数自动转换成十六进制表示,再格式化输出。

f 或者 F     转换为浮点数(默认小数点后保留 6 位),再格式化输出。

下面举几个例子:

冒号可选项 : 和格式标识符可以对值进行更好的格式化。如:

P=3.1415926

print('常量 PI 的值近似为 {0:.3f} '.format(P)) #输出:常量 P 的值近似为 3.142

在 : 后传入一个整数, 可以保证该字段至少有这么多的宽度。如:

for x in range(1, 5):
    print('{0:10} {1:10} {2:10}'.format(x, x*x, x*x*x))

输出:

inPUT python 输入框 python输入input函数_inPUT python 输入框_04


又如:

name = "小兵"
age = 15
height = 1.587
#输出:他的名字是小兵。已经15岁了。身高是1.59米
print("他的名字是{0},已经{1}岁了,身高是{2:.2f}米".format(name, age, height))

参见下图:

inPUT python 输入框 python输入input函数_数据_05


python的原始字符串

原始字符串:所有的字符串都是直接按照字面的意思来使用。

python原始字符串是指在引号前添加 r 或 R 前缀的字符串,在原始字符串中,字符“\” 不再表示转义字符的含义。

如:

直接使用‘c:\now'会报错,\需要转义,应该这样写 'c:\\now',或者采用原始字符串的写法r‘c:\now'

对于 ASCII 编码,0~31(十进制)范围内的字符为控制字符,它们都是看不见的,不能在显示器上显示,甚至无法从键盘输入,只能用转义字符的形式来(以反斜杠\开始)表示,常见的转义字符参见下表:

转义字符

说明

例子

\n

换行符,将光标位置移到下一行开头。

print("Hello\nWorld!")

输出如下:

Hello

World!

\t

水平制表符,也即 Tab 键,一般相当于四个空格。

print("Hello\tWorld!")

输出如下:

Hello   World!

\\

反斜线

print('此路径是D:\\test\\hello.txt')

输出如下:

此路径是D:\test\hello.txt

\'

单引号

print('I\'m Li Ning')

输出如下:

I'm Li Ning

\"

双引号

print("可以使用\"创建字符串")

输出如下:

可以使用"创建字符串

\

在字符串行尾的续行符,即一行未完,转到下一行继续写。

print("line1 \

line2 \

line3")

输出如下:

line1 line2 line3

f字符串(f-stringf-字符串)

也称为 格式字符串字面值  【  官方https://docs.python.org/zh-cn/3/reference/lexical_analysis.html#f-strings

以f或 F为前缀(开头)的字符串,称之为f-string,是从python3.6引入的它和普通字符串不同之处在于,字符串如果包含{xxx},就会以对应的变量替换:

r = 2.5

s = 3.14 * r ** 2

print(f'半径为{r}的圆的面积为{s:.2f}') #半径为2.5的圆的面积为19.62

参见下图:

inPUT python 输入框 python输入input函数_inPUT python 输入框_06


上述代码中,{r}被变量r的值替换,{s:.2f}被变量s的值替换,并且:后面的.2f指定了格式化参数(即保留两位小数),因此,{s:.2f}的替换结果是19.62。

f字符串的前缀为f,{}括号部分是被替换值,其中冒号前是变量名,冒号后指定用于类型,填充或对齐的格式说明符。