目录
1. print( 坑的信息 )
- 挖坑时间:2019/01/08
- 明细
坑的编码 | 内容 |
---|---|
Py004-5 | \0 这个空字符怎么用 |
2. 开始填坑
(1) \0
是空字符,输出时看不到它,但它占 1 个字符的长度
- 示例
# 例1
str1_1 = "I am YorkFish."
str1_2 = "I am York\0Fish."
print("str1_1 =", str1_1)
print("str1_2 =", str1_2)
print("len(str1_1) =", len(str1_1))
print("len(str1_2) =", len(str1_2))
- 运行结果
str1_1 = I am YorkFish.
str1_2 = I am YorkFish.
len(str1_1) = 14
len(str1_2) = 15
(2) \0
遇八进制失效
- 示例
# 例2
str2_1 = "ab\66cd"
str2_2 = "ab\066cd"
print("str2_1 =", str2_1)
print("str2_2 =", str2_2) # 若 \0 生效,则输出 ab66cd
print("len(str2_1) =", len(str2_1))
print("len(str2_2) =", len(str2_2))
- 运行结果
str2_1 = ab6cd
str2_2 = ab6cd
len(str2_1) = 5
len(str2_2) = 5
(3) \0
与 ''
不是同一个东西
- 示例
# 例3
if '\0' == '':
print("YES")
else:
print("NO")
- 运行结果
NO
(4) \0
与 None
不是同一个东西
- 示例
# 例4
if '\0' == None:
print("YES")
else:
print("NO")
- 运行结果
NO
(5) 有时,\0
与 None
是一伙儿的
- 补充 filter(function or None, iterable) 的用法
- 释义
- filter() 用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象
- 如果要转换为列表,可以使用 list()
- filter() 接收两个参数,第一个为函数,第二个为序列
- 序列的每个元素作为参数传递给函数进行判,将返回 True 的元素放到新列表中
# 补例
def is_even(n): # 筛选偶数
return n % 2 == 0
tmp_list = filter(is_even, [1, 2, 3, 4, 5, 6])
new_list = list(tmp_list)
print(new_list)
- 运行结果
[2, 4, 6]
- 示例
# 例5
list5 = ['1', '2', '3', '\0', '', ' ', None]
print(list(filter(None, list5)))
- 运行结果
['1', '2', '3', '\x00', ' ']
\0 以十六进制被表示出来,'' 与 None 被剔除了,' ' 看似什么都没有,其实空格也是值。
我的学识有限,如果有同学、老师或者前辈看到我写的东西,发现错误之处,还请不吝赐教!谢谢!