另一种办法是将你的代码通过 www.pythontutor.com可视化,就可以逐行查看代码运行的方式了。
使用pythontutors执行代码
4. 使用字符串:
这部分内容其实与字符串不完全相关,与挖掘Python优雅的库有更大关系。
我们很早就在Python中学过,字符串也可以看作是一串字符。你也可以使用索引访问字符串中的字符。
word = 'supergreat' print (f'{word[0]}') >>> s print (f'{word[0:5]}') >>> super
敏锐的学习者会查看`str()`所提供的内容,但也可以不查看 `str()`文档继续编程。
查看函数或过程文档可以通过调用 `help(str)` 或者`dir(str)`来实现。执行此操作时,你可能会发现一些并不知道的方法,也许你在查看`str()`时,找到有个名叫 `endswith()` 的方法,或许能用在某处。
下面是一些以两种不同方式执行相同操作的代码案例,一种用到了我们才谈过的拆分,还有一种用到了我们刚刚学到的 `endswith()` :
filenames = ['lochness.png' , 'e.t.jpeg' , 'conspiracy_theories_CONFIRMED.zip'] # 1: Using ENDSWITH for files in filenames: if files.endswith('zip'): print(f'{files} is a zip file') else: print (f'{files} is NOT a zip file') # 2: Using SPLIT for files in filenames: if files.split('.')[-1] == 'zip': print(f'{files} is a zip file (using split)') else: print (f'{files} is NOT a zip file (using split)')
大多程序员是从来不会把所有文档读遍来学习全部内容的。作为一名程序员,部分工作就是要搜索如何解决问题的信息。
5. 使用列表:
列表很棒,用途也很广泛。
下面的案例中,我们将整数和字符串混合在了一起:
my_list = ['a' , 'b' , 'n' , 'x' , 1 , 2 , 3, 'a' , 'n' , 'b'] for item in my_list: print (f'current item: {item}, Type: {type(item)}')
注意我们是怎么将字符串和整数混合在一起的,如果尝试对其排序,就会报错:
print (my_list.sort())
如果我们想把整数与字母分开要怎么做?一种方式是通过循环来实现,我们可以遍历列表中的所有项目。初学者很早就会使用循环了,循环对于编程也很重要。
代码可能是下面这样的:
my_list = ['a' , 'b' , 'n' , 'x' , 1 , 2 , 3 , 'a' , 33.3 , 'n' , 'b'] number_list = [] string_list = [] for item in my_list: print (f'current item: {item}, Type: {type(item)}') if not isinstance(item,str): number_list.append(item) else: string_list.append(item) my_list = string_list
即便有些混乱,这也是一种有效的方式,可以运行,不过经过重构可以用单行来表示!
如果想要生活多些乐趣,请学习Python的列表解析式,下面是同样问题通过列表解析式得出的:
my_list = [letter for letter in my_list if isinstance(letter,str)]
就是这样!