发布网友 发布时间:2022-04-18 15:58
共2个回答
懂视网 时间:2022-04-18 20:19
这篇文章主要给大家总结介绍了关于Python 3中print函数的使用方法,python3中的print函数和之前版本的用法相差很多,本文通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。前言
Python 思想:“一切都是对象!”,最近发现python3和python2中print的用法有很多不同,python3中需要使用括号,缩进要使用4个空格(这不是必须的,但你最好这么做),缩进表示一个代码块的开始,非缩进表示一个代码的结束。没有明确的大括号、中括号、或者关键字。这意味着空白很重要,而且必须要是一致的。第一个没有缩进的行标记了代码块,意思是指函数,if 语句、 for 循环、 while 循环等等的结束。所以就想着给大家总结一下Python3中print函数用法的相关内容,话不多少了,来一起看看详细的介绍:
1. 输出字符串和数字
>>> print("runoob") #输出字符串 runoob >>> print(100) # 输出数字 100 >>> str = 'runoob' >>> print(str) # 输出变量 runoob >>> L = [1,2,'a'] # 列表 >>> print(L) [1, 2, 'a'] >>> t = (1,2,'a') # 元组 >>> print(t) (1, 2, 'a') >>> d = {'a':1, 'b':2} # 字典 >>> print(d) {'a': 1, 'b': 2}
2. 格式化输出整数
<p>支持参数格式化,与 C 语言的 printf 类似</p> <pre>>>> str = "the length of (%s) is %d" %('runoob',len('runoob')) >>> print(str) the length of (runoob) is 6
python字符串格式化符号:
符 号 | 描述 |
---|---|
%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 是小数点后的位数(如果可用的话) |
3. 格式化输出16进制,十进制,八进制整数
#%x --- hex 十六进制
#%d --- dec 十进制
#%o --- oct 八进制
>>> nHex = 0xFF >>> print("nHex = %x,nDec = %d,nOct = %o" %(nHex,nHex,nHex)) nHex = ff,nDec = 255,nOct = 377
4.格式化输出浮点数(float)
>>> pi = 3.141592653 >>> print('%10.3f' % pi) #字段宽10,精度3 3.142 >>> print("pi = %.*f" % (3,pi)) #用*从后面的元组中读取字段宽度或精度 pi = 3.142 >>> print('%010.3f' % pi) #用0填充空白 000003.142 >>> print('%-10.3f' % pi) #左对齐 3.142 >>> print('%+f' % pi) #显示正负号 +3.141593
5. 自动换行
print 会自动在行末加上回车, 如果不需回车,只需在 print 语句的结尾添加一个逗号 , ,就可以改变它的行为。
>>> for i in range(0,6): ... print (i,) ... 0 1 2 3 4 5
6. print 不换行
在 Python 中 print 默认是换行的
>>> for i in range(0,3): ... print (i) ... 0 1 2 >>>
要想换行你应该写成 print(i, end = '' )
>>> for i in range(0,3): ... print(i, end = '' ) ... 012
总结
热心网友 时间:2022-04-18 17:27
我先贴一张图
可以看到,如果先用print()函数输出a,然后输出c的话,那么c就是空的。
楼主的图说明先用print()函数输出c,然后输出a的话,那么a就是空的。
为什么会出现这个问题呢?
问题就出在filter函数上
注意:Python2.7 返回列表,Python3.x 返回迭代器对象,具体内容可以查看:Python3 filter() 函数
python3 返回迭代器对象,那么什么是迭代器对象呢?
Python3 迭代器与生成器
总的来说迭代器是便利集合元素的一种方式,并且记住便利的位置,不能访问已经访问过的元素
这就说明迭代器对象每个元素只能用(或者说获取)一次,如果事先使用了,后面就获取不到了,题主在输出之前使用了list()函数将其转换成list对象,迭代器已经遍历完所有的元素了,所以后面的map()函数就获取不到值了,所以就空了
当然了,如果用list()函数将迭代器中的元素存下来,那样就可以重复使用了。