41. 如何删除字符串中的所有空白?
最简单的方法是使用空白拆分字符串,然后将拆分成的字符串重新连接在一起。
s = 'A string with white space'
''.join(s.split())
#=> 'Astringwithwhitespace'
42. 在迭代序列时,为什么要使用enumerate()?
enumerate() 允许在序列上迭代时跟踪索引。它比定义和递增一个表示索引的整数更具 Python 感。
li = ['a','b','c','d','e']
for idx,val in enumerate(li):
print(idx, val)
#=> 0 a
#=> 1 b
#=> 2 c
#=> 3 d
#=> 4 e
43. pass、continue和break之间有什么区别?
pass 意味着什么都不做。我们之所以通常使用它,是因为 Python 不允许在没有代码的情况下创建类、函数或 if 语句。
在下面的例子中,如果在 i>3 中没有代码的话,就会抛出一个错误,因此我们使用 pass。
a = [1,2,3,4,5]
for i in a:
if i > 3:
pass
print(i)
#=> 1
#=> 2
#=> 3
#=> 4
#=> 5
Continue 会继续到下一个元素并停止当前元素的执行。所以当 i<3 时,永远不会达到 print(i)。
for i in a:
if i < 3:
continue
print(i)
#=> 3
#=> 4
#=> 5
break 会中断循环,序列不再重复下去。所以不会被打印3以后的元素。
for i in a:
if i == 3:
break
print(i)
#=> 1
#=> 2
44. 如何将for循环转换为使用递推式构造列表(list comprehension)?
For 循环如下:
a = [1,2,3,4,5]
a2 = []
for i in a:
a2.append(i + 1)print(a2)
#=> [2, 3, 4, 5, 6]
用递推式构造列表来修改这个 for 循环,代码如下:
a3 = [i+1 for i in a]
print(a3)
#=> [2, 3, 4, 5, 6]
递推式构造列表通常被认为更具 Python 风格,同时仍易于阅读。
45. 举一个使用三元运算符的例子。
三元运算符是一个单行的 if/else 语句。语法看起来像“if 条件 else b”。
x = 5
y = 10
'greater' if x > 6 else 'less'
#=> 'less'
'greater' if y > 6 else 'less'
#=> 'greater'
46. 检查一个字符串是否仅仅包含数字?
可以使用 isnumeric() 方法。
'123a'.isnumeric()
#=> False'
'123'.isnumeric()
#=> True
47. 检查一个字符串是否仅仅包含字母?
你可以使用 isalpha()。
'123a'.isalpha()
#=> False
'a'.isalpha()
#=> True
48. 检查字符串是否只包含数字和字母?
你可以使用 isalnum()。
'123abc...'.isalnum()
#=> False
'123abc'.isalnum()
#=> True
49. 从字典返回键列表
这可以通过将字典传递给 Python 的 list() 构造函数 list() 来完成。
d = {'id':7, 'name':'Shiba', 'color':'brown', 'speed':'very slow'}
list(d)
#=> ['id', 'name', 'color', 'speed']
50. 如何将一个字符串转化为全大写和全小写?
你可以使用 upper() 和 lower() 字符串方法。
small_word = 'potatocake'
big_word = 'FISHCAKE'
small_word.upper()
#=> 'POTATOCAKE'
big_word.lower()
#=> 'fishcake'
博主第46和48个用到的函数是一样的鸭,是不是打错了
已经修正!感谢提醒 ><