1
本文利用的是Python 3.x版本,建议学习3.x版本

Python中的基本输入、输出、格式化输出

1. 输入

使用input([prompt])读取一行,将其转换为string类型并返回,input的参数可有可无,如果有参数的话,会在控制台(可以这样理解)输出参数的内容,不换行。通常情况下我们在控制台输入一些数据,然后敲击回车,就完成了本次输入。以下是例子。

name = input("Enter your name: ")
print(name)

图片描述

这里要注意的是,input返回的是string类型,如果想输入数字,还需要进行类型转换,例如

num = int(input("Enter a number: "))
print(num*2)

图片描述

其实以上这种转换并不安全,因为如果user输入字符串的话,没法转为int类型,这样程序就会出错,异常终止。所以一种比较简单的方法是,先对输出进行判断,然后再转换,因为还没有说到判断语句,所以这个判断之后再说。

2. 输出

一般在控制台中我们用print进行输出,因为比较简单,所以之前也一直在使用。print的原型如下

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

看起来很复杂,但是这个参数都是有默认参数的,我们可以先简单使用前三个参数,后面的默认即可,这样的话,目前而言,我们的print就变成了

print(*objects, sep=' ', end='\n')

第一个参数是我们要在控制台输出的数据,可以是多个,用,逗号隔开,pyprint很强大,可以输出很多种数据类型,只要你觉的可以输出的,print都可以输出,你觉得不能输出的,试一试也可能输出。
例如

print("xx")
print(1)
print(True)
print(None)

图片描述

sep用来将多个数据隔开,默认是空格,end加在输出的末尾,默认是换行符

print(1,2,3,sep='@@',end='<>\n')
#用@@分隔数据,结尾加上<>并换行

图片描述

3. 格式化输出,占位符

如何格式化输出字符串呢,例如你好XX,你的额度是xx,其中xx的变量,我们无法预知,这个时候就需要格式化输出,和C语言一样,我们可以使用占位符%?,其中?代表不同的字符,例如%s代表字符串,%d代表十进制整数,%f代表浮点数,例如

name = "Potato"
b = 100
print("你好%s,你的额度是%d" % (name,b) )
#name将替换%s的位置,b将替换%d的位置,字符串后的%用来说明是哪些变量要替换前面的占位符,当只有一个变量的时候,可以省略括号

图片描述

占位符还可以控制输出的格式,例如保留几位小数,填充前导0等,以下是例子

print("小数: %.2f" % 3.14159)# %.2f代表保留两位小数
print("小数: %.2f" % 4.5)# %.2f保留两位小数,不够的位用0补充
print("占位: %3d" % 5)# %3d代表这个数的宽度为3,不够的话用空格在前面补,如果数的宽度大于3,则正常输出
print("前导0: %05d" % 2)# %05d代表这个数的宽度为5,不够的话用0在前面补,如果数的宽度大于5,则正常输出

图片描述

如果不知道数据类型的话,用%s即转为字符串进行输出会比较稳妥,还有许多种占位符的格式,具体使用时可以搜索,一般常用的就是以上那些。

4. 格式化输出,format

可以利用string对象的format方法,进行格式化,以下是例子

print("你好{0},你的余额是{1:.2f}".format("Potato",3.1))
#{0}代表占位符和format里的参数对应,{1:.2f},冒号后是格式控制,代表保留两位小数

图片描述

这种方式使用起来可能不是很方便。或者还可以使用py内置的format函数,例如

print(format(3.1415,".2f"))
#结果是3.14

如果觉得不错,可以分享~可以关注公众号~

图片描述


菌酱
171 声望6 粉丝

东北大学数字媒体技术在读,即将去北航读计算机硕士,感受分享知识的快乐~