下一个要了解的语法是parameters和arguments,在过程或函数中定义时(红色部分)被称为形参(parameters),当发送名称到过程或函数中(绿色部分)时就叫实参(arguments)了。
下面是些案例:
案例1
def print_list(input_list): for each in input_list: print(f'{each}') print() #just to separate output greek_gods = ['Zeus' , 'Hera' , 'Poseidon' , 'Apollo' , 'Bob'] grocery_list = ['Apples' , 'Milk' , 'Bread'] print_list(greek_gods) print_list(grocery_list) print_list(['a' , 'b' , 'c'])
无需把循环写上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是一种面向对象的语言,其强大之处在于对象。将对象视为蓝图,如果使用蓝图,你可以创建该蓝图的实例。也就是说,你可以创建需要的多个蓝图实例,但不会损毁你使用的蓝图。
面向对象编程(OOP)是一个庞大的话题,因此我们不会在本节中涵盖所有你需要了解的内容,但可以通过几个简单的示例帮你入门。
如果你之前读过面向对象编程的相关内容,可能已经厌倦了学生(student)类,但我们又来了。从定义一个名为student的类开始,student会拥有一个名称和一个subject_list:
class Student(): def __init__(self,name): self._name = name self._subject_list = []
如果想要创建一个student,可以像这样将其分配给变量:
student1 = Student('Martin Aaberge')
如果需要更多student,可以使用同一个类并添加另外的姓名:
student2 = Student('Ninja Henderson')
`student1`和`student2`都是student类的实例,它们共享同一个蓝图,但彼此之间并无关系。此时,我们对学生们能做的不多,但我们确实增加了一个主题列表。要填充此列表,我们需要创建方法,你可以调用方法来实现与该类实例的交互。
我们更新:
class Student(): def __init__(self,name): self._name = name self._subject_list = [] def add_subject(self, subject_name): self._subject_list.append(subject_name) def get_student_data(self): print (f'Student: {self._name} is assigned to:') for subject in self._subject_list: print (f'{subject}') print()
这个类可以用于创建、编辑学生信息,并获取我们存在其中的信息:
#create students: student1 = Student('Martin Aaberge') student2 = Student('Heidi Hummelvold') #add subjects to student1 student1.add_subject('psychology_101') student1.add_subject('it_security_101') #add subject to student2 student2.add_subject('leadership_101') #print current data on students student1.get_student_data() student2.get_student_data()
将类保存在单独的文件中并导入主代码的操作很常见,在我们的案例中,我们会在student.py文件中创建一个`student`类,并将其导入我们的main.py文件(本案例中,它们都位于同一个文件夹中)。
from student import Student student1 = Student('Martin') student1.add_subject('biomechanics_2020') student1.get_student_data()
student类和main.py在使用它
9.尊重PEP
我们经常看到人们在写Python代码时并不尊重PEP(Python增强提案:Python Enhancement Proposals),但我自己会尊重。
当你在开发环境中工作时,遵守标准非常重要——如果不是PEP标准,也至少要遵守公司的标准。
PEP是代码的一组准则,下面是PEP-8的链接(https://www.python.org/dev/peps/pep-0008/),读起来很棒。请确保你通读过一次,了解大概内容。一个典型的案例是`snake_case`,Python是以`snake_case`来写的,这代表着我们用下划线来区分词组,即便大学里也会犯错,因此别难过,只要别这样做就行了。
这样写是对的:
chocolate_cake = 'yummy'
这样是错的:
chocolateCake = 'Yummy'
2、结论
入门是了不起的体验,需要艰苦钻研,但你的学习曲线急遽上升,用新的经验填满你。
也许新手状态很难摆脱,了解你要关注什么是很困难的,下一步呢?
也许本文将你向正确的方向推进了一步,也许只是一堆你已经知道的胡言乱语。如果你不确定下一步该做什么,不要害怕提问。确保你用好了那些比你更有经验的人,对各种意见持开放态度,看看哪些对你有用。如果还没准备好使用某些编程方式,请继续让代码能够运行,同时学些新的和更好的方法。