python入门之条件、循环、函数、模块

python的简单了解,关于条件、循环、函数和模块,本文均为基础知识

条件

C++:

1
2
3
4
5
6
if(条件):
执行代码
else if(条件):
执行代码
else:
执行代码

python:不需要括号,并且第二个为elif

1
2
3
4
5
6
if 条件:
执行代码
elif 条件:
执行代码
else
执行代码

C++用{}表示一个程序块,python代码结构由:和 缩进表示同为一个程序块
python中检查多个条件是否为true用and连接(类比C++中&&)
检查是否有一个相等or(类比||)
检查是否包含在列表中使用in,不包含使用not in

循环

C++

1
2
for(int i = 0; i < n; ++i)//用n控制循环
{}

python

1
for i in range://采用序列的方式控制循环

函数

函数定义

关键字def定义一个函数

1
2
3
def greet_user():
"""显示简单的问候语"""#该行为docstring,文档字符串的注释,描述函数做什么的
print("hello") #该行为函数体
传递实参
  • 位置实参:实参和形参的传递顺序相同,就是类似普通的参数传递

  • 关键字实参:在实参中将名称和值关联起来,这样在传递的过程不会混淆,无序考虑函数调用中的实参顺序

    1
    2
    3
    def 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
2
import module_name
mudule_name.func #调用函数方法
导入特定函数
1
2
from module_name import func_1,func_2.......
func_1() #直接调用函数
使用as给函数起别名,防止命名冲突或函数名太长,也可用as给模块指定别名,方法同前
1
2
from module_name import func as ff
ff() #直接使用函数的别名
使用*带入模块中的所有函数,不过如果不是自己写的大型模块,尽量不用
1
from module_name import *
休息一下,喝杯咖啡,继续创作