python的简单了解,关于条件、循环、函数和模块,本文均为基础知识
条件
C++:
1 | if(条件): |
python:不需要括号,并且第二个为elif
1 | if 条件: |
C++用{}表示一个程序块,python代码结构由:和 缩进表示同为一个程序块
python中检查多个条件是否为true用and连接(类比C++中&&)
检查是否有一个相等or(类比||)
检查是否包含在列表中使用in,不包含使用not in
循环
C++
1 | for(int i = 0; i < n; ++i)//用n控制循环 |
python
1 | for i in range://采用序列的方式控制循环 |
函数
函数定义
关键字def定义一个函数
1 | def greet_user(): |
传递实参
位置实参:实参和形参的传递顺序相同,就是类似普通的参数传递
关键字实参:在实参中将名称和值关联起来,这样在传递的过程不会混淆,无序考虑函数调用中的实参顺序
1
2
3def describe_pet(animal_type, pet_name):
XXXXXXX
describe_pet(animal_type='hamster', pet_name='harry')默认值,给形参指定默认值,使用默认值时,在形参列表中必须先列出没有默认值的形参,再列出有默认值的实参。这让Python依然能够正确地解读位置实参
禁止函数修改列表
方法:向函数传递列表的副本而不是原件,这样函数的任何修改都只是影响副本,不影响原件。切片表示法[:]是创建列表的副本。function_name(list_name[:]) #传递列表的副本
BUT一般还是要传递原始列表给函数,因为原始列表可以避免花费时间和内存创建副本,从而提高效率,处理大型列表更要如此。
传递任意数量的实参
形参名 * XXX中的 * 是创建一个名为XXX的空元组,并把收到的所有值都封装到这个元组中。注意:python将实参封装到一个元组中,即便函数只收到一个值也是如此。** XXX中的** 是创建一个空字典,这样就可以使用关键字形参了(键值对形式)
函数接受任意数量的实参和位置实参混合使用
要把接受任意数量的实参的形参放在最后,函数接收参数时,先匹配位置实参和关键字实参,最后再将余下实参都放到最后一个形参中。
模块
模块是扩展名为.py的文件,包含要导入到程序的代码。一般将函数存储在模块的独立文件中,再将模块导入到主程序中
直接导入模块
1 | import module_name |
导入特定函数
1 | from module_name import func_1,func_2....... |
使用as给函数起别名,防止命名冲突或函数名太长,也可用as给模块指定别名,方法同前
1 | from module_name import func as ff |
使用*带入模块中的所有函数,不过如果不是自己写的大型模块,尽量不用
1 | from module_name import * |