Python 初学者进阶的九大技能(附代码)( 三 )


如果想要生活多些乐趣 , 请学习Python的列表解析式 , 下面是同样问题通过列表解析式得出的:
my_list = [letter for letter in my_list if isinstance(letter,str)]就是这样!
还没结束!使用过滤器也可以获得同样的结果:
def get_numbers(input_char):if not isinstance(input_char,str):return Truereturn Falsemy_list = [1,2,3,'a','b','c']check_list = filter(get_numbers, my_list)for items in check_list:现在你可能明白了 , 实现同样的结果有很多方法 , 你必须找出适合你或你团队的那个 。
额外知识点

  • 反向列表(或字符串):
names = ['First' , 'Middle' , 'Last']print(names[::-1])>>> ['Last', 'Middle', 'First']names = ['First' , 'Middle' , 'Last']print(names[::-1])>>> ['Last', 'Middle', 'First']
  • 在列表中加入元素:
names = ['First' , 'Middle' , 'Last']full_name = ' '.join(names)print(f'Full Name:n{full_name}')>>> First Middle Last6、使用循环是否在Python中见过这样的代码?greek_gods = ['Zeus' , 'Hera' , 'Poseidon' , 'Apollo' , 'Bob']for index in range(0,len(greek_gods)):print (f'at index {index} , we have : {greek_gods[index]}')你可能发现了 , 它来自其他语言 , 这不是Python的风格 。 在Python中 , 你可以使用for-each循环:
for name in greek_gods:print (f'Greek God: {name}')你很快就能发现 , 这里我们不包含索引 。 如果想用索引打印要怎么做?在Python中 , 你可以使用枚举(enumerate参数) , 这是一种访问所需内容的绝佳方案 。
for index, name in enumerate(greek_gods):print (f'at index {index} , we have : {name}')
Python 初学者进阶的九大技能(附代码)
本文插图
7. 使用函数(并正确谈论函数):
我在从事动画工作时 , 总是说如果同一个操作重复5次 , 就应该考虑是否需要写个程序 。 有些时候花上两周开发一款工具可以节省你六个礼拜的工作时间 。
编写代码时 , 如果发现同一动作执行了不止一次 , 应该考虑这是过程还是函数 , 还不只是写写代码 。 函数会返回内容 , 过程则只是运行代码 , 第一个案例是个过程 , 第二个是函数 。
这样说可能会令人困惑 , 下面是其工作原理的示意图:
Python 初学者进阶的九大技能(附代码)
本文插图
注意print和return的差异 , 看起来也许很相似 , 但如果你查看输出结果 , 函数只会返回发送的名称 。
下一个要了解的语法是parameters和arguments , 在过程或函数中定义时(红色部分)被称为形参(parameters) , 当发送名称到过程或函数中(绿色部分)时就叫实参(arguments)了 。
下面是些案例:
案例1
def get_numbers(input_char):if not isinstance(input_char,str):return Truereturn Falsemy_list = [1,2,3,'a','b','c']check_list = filter(get_numbers, my_list)for items in check_list:
Python 初学者进阶的九大技能(附代码)
本文插图
无需把循环写上3次 , 只需在过程中写上一次 , 然后在需要时调用即可 。 在案例2中 , 你可以发现代码是如何返回反向列表的 。
案例2
def reverse_list(list_input):return list_input[::-1]my_list = ['a', 'b' , 'c']print (reverse_list(my_list))>>> ['c', 'b', 'a']8.面向对象编程
Python是一种面向对象的语言 , 其强大之处在于对象 。 将对象视为蓝图 , 如果使用蓝图 , 你可以创建该蓝图的实例 。 也就是说 , 你可以创建需要的多个蓝图实例 , 但不会损毁你使用的蓝图 。