产生输出的最简单方法是使用print语句,可以通过用逗号分隔零个或多个表达式。这个函数传递表达式转换为一个字符串,如下结果写到标准输出 -
print ("Python is really a great language,", "isn't it?")
这将产生以下结果标准屏幕上 :
Python is really a great language, isn't it?
Python2中有两个内置的函数可从标准输入读取数据,它默认来自键盘。这些函数分别是:input() 和 raw_input()。
但在Python3中,raw_input()函数已被弃用。此外, input() 函数是从键盘作为字符串读取数据,不论是否使用引号(”或“”)。
示例:
x=input("请输入x=") y=input("请输入y=") z=x+yprint("x+y="+z)
运行结果:
请输入x=111 请输入y=222 x+y=111222
可以看到input的返回值永远是字符串,当我们需要返回int型时需要使用int(input())的形式,例如:
x=int(input("请输入x="))y=int(input("请输入y=")) z=x+yprint("x+y=",z)
运行结果如下:
请输入x=111 请输入y=222 x+y= 333
一般来说,我们希望更多的控制输出格式,而不是简单的以空格分割。这里有两种方式:
第一种是由你自己控制。使用字符串切片、连接操作以及 string 包含的一些有用的操作。
示例:
# 第一种方式:自己控制 for x in range(1, 11): print(str(x).rjust(2), str(x*x).rjust(3), end=' ') print(str(x*x*x).rjust(4))
输出:
1 1 1 2 4 8 3 9 27 4 16 64 5 25 125 6 36 216 7 49 343 8 64 512 9 81 729 10 100 1000
第一种方式中,字符串对象的 str.rjust() 方法的作用是将字符串靠右,并默认在左边填充空格,所占长度由参数指定,类似的方法还有 str.ljust() 和 str.center() 。这些方法并不会写任何东西,它们仅仅返回新的字符串,如果输入很长,它们并不会截断字符串。
第二种是使用str.format()方法。
用法:它通过{}
和:
来代替传统%
方式
使用位置参数
要点:从以下例子可以看出位置参数不受顺序约束,且可以为{},只要format里有相对应的参数值即可,参数索引从0开,传入位置参数列表可用*列表的形式。
>>> li = ['hoho',18] >>> 'my name is {} ,age {}'.format('hoho',18) 'my name is hoho ,age 18' >>> 'my name is {1} ,age {0}'.format(10,'hoho') 'my name is hoho ,age 10' >>> 'my name is {1} ,age {0} {1}'.format(10,'hoho') 'my name is hoho ,age 10 hoho' >>> 'my name is {} ,age {}'.format(*li) 'my name is hoho ,age 18'
使用关键字参数
要点:关键字参数值要对得上,可用字典当关键字参数传入值,字典前加**即可
>>> hash = {'name':'hoho','age':18} >>> 'my name is {name},age is {age}'.format(name='hoho',age=19) 'my name is hoho,age is 19' >>> 'my name is {name},age is {age}'.format(**hash) 'my name is hoho,age is 18'
填充与格式化
格式:{0:[填充字符][对齐方式 <^>][宽度]}.format()
>>> '{0:*>10}'.format(20) ##右对齐 '********20' >>> '{0:*<10}'.format(20) ##左对齐 '20********' >>> '{0:*^10}'.format(20) ##居中对齐 '****20****'
精度与进制
>>> '{0:.2f}'.format(1/3) '0.33' >>> '{0:b}'.format(10) #二进制 '1010' >>> '{0:o}'.format(10) #八进制 '12' >>> '{0:x}'.format(10) #16进制 'a' >>> '{:,}'.format(12369132698) #千分位格式化 '12,369,132,698'
使用索引
>>> li ['hoho', 18] >>> 'name is {0[0]} age is {0[1]}'.format(li) 'name is hoho age is 18
以上是详解Python的标准输入输出的详细内容。更多信息请关注PHP中文网其他相关文章!