目录
图 1 基础结构
Python中基础结构主要包含了函数、模块、包和库,此处主要介绍用户自定义函数
用户自定义函数就是用户根据自己的需求而创建的函数,其语法规则如下:
图 2 用户自定义函数
代码实现如下:
def add(x): '''函数部分 '''
return x + x
print(add(3))
默认参数,可以先给参数一个默认的值,在没有给函数参数的时候,执行默认参数,具体使用细节在图 2 ,代码实现如下:
def f(x=True):
if x:
print('这是默认参数')
print('ok')
f()
运行结果如下:
如果给函数一个参数,则按所给参数执行,代码实现如下:
def f(x=True):
if x:
print('这是默认参数')
print('ok')
f(False)
运行结果如下:
关键字参数,不需要考虑参数的顺序而直接使用,代码如下:
def f(x, y):
if y:
print('这是关键字参数')
print(x, '这是x的值')
f(y=True, x=666) #通过关键字参数,虽然参数的顺序反了,但任然可以运行
运行结果如下:
传递函数,将函数当初一个参数进行传递,代码实现如下:
def add(x):
return x + x
def self(f, y):
print(f(y))
self(add, 3) #运行结果是6
lambda函数,也叫匿名函数,可以和函数式编程结合起来,比较简洁方便,代码实现如下:
add = lambda x, y: x + y
print(add(3, 3)) #输出结果是6
此外,还有一个递归函数,但递归比循环要慢,所以能使用循环实现的,尽量用循环实现,递归实现代码如下:
def f1(a, b):
if b == 1:
return a
else:
return a+f1(a, b-1)
print(f1(2, 3)) #运行结果是6,相当于2*3
图 3 变量作用域
变量主要分为全局变量和局部变量,通过global可以将局部变量转换为全局变量,代码实现如下:
def f(x):
print(a) #此处会报错,a未被赋值就进行调用
a = 5
print(a+x)
a=3
f(8)
而将a 加上global 语句之后,代码如下:
def f(x):
global a
print(a)
a = 5
print(a + x)
a = 3
f(8) # 输出 3 和 13
完整的python文件就是一个模块,使一个用模块时,需要将其模块进行导入,具体操作代码如下所示:
import math
a = math.floor(3.14)
print(a) #输出结果是3,这是一个向下取整函数
同时引入多个模块,需要用“,”隔开,代码实现如下:
import math,datetime
a = math.floor(3.14)
print(a)
b = datetime.datetime.now()
print(b)
运行结果如下所示:
如果像单独引用某一个模块,则使用from import 语句,代码实现如下:
from math import floor
a = floor(3.14)
print(a) #输出为3
注 :如果想引入所有模块,但又不想打模块名,可以使用from import+*来实现,代码实现如下:
from turtle import *
pensize(1)
pencolor("red")
fillcolor("pink")
setup(800, 800, 0, 0)
speed(4)
penup()
goto(-30, 100)
pendown()
begin_fill()
left(90)
circle(120, 180)
circle(360, 72)
left(38)
circle(360, 72)
circle(120, 180)
end_fill()
penup()
goto(-30, 100)
pendown()
done()
运行效果如下所示:
还可以将模块重命名,使用 import+模块名 +as+重命名来实现,代码如下所示:
import math as m
a = m.floor(3.14)
print(a) #运行结果还是3
包和库,目前接触不多,常用库在之后进行介绍,具体内容请看图 1
图 4 基本运算
因为运算与C 语言差别不大,此处就不详细介绍,主要介绍一下乘方运算和比较运算中与c语言不同的地方,实现代码如下:
print(2 ** 3) #这个输出8,相当于2*2*2
if 5 > 4 > 3: #python中允许这样的运算,所以输出ok
print("ok")
图 5 基础语句
与C语言中的if类似,主要区别就是多了一个elif和条件表达式与c语言略有区别,具体内容请看图 5 ,实现代码如下:
k = input('input : ')
if k == '1':
print('ok')
elif k == '2': #elif 语句,就是一个嵌套判断
print('hellow')
else:
print('you input the invalid number')
a = 1 if 3 > 2 else 0 #3>2为真,则返回1,为假则返回0
print(a)
while语句和C语言类似,有区别的地方就是,while后接else是C语言没有的,具体语法规则实现,如下代码所示:
a = 6
while a > 4:
a = a - 1
if a < 3:
print("1")
break #未执行break语句,所以输出else语句内容
else:
print("0") #输出结果为0
若将代码适当修改,则else语句不被执行,代码如下:
a = 6
while a > 2:
a = a - 1
if a < 3:
print("1")
break #执行了break语句,所以不执行else语句
else:
print("0") #输出结果是1
for语句与C语言有了明显区别,接下来重点介绍for语句,知识点请看图 5 ,代码实现如下所示:
序列项迭代:
s = 'Python'
for c in s:
print(c,end=' ') #输出结果为P y t h o n
索引迭代:
s = "Python"
for i in range(len(s)):
print(s[i],end=' ') #输出结果为P y t h o n
for语句后接else和while后接else类似,此处不展开介绍,代码实现如下:
s = "Python"
for i in range(len(s)):
if i > 4:
print(s[i],end=' ') #代码输出n
break
else:
print('ok')
s = "Python"
for i in range(len(s)):
if i > 48:
print(s[i],end=' ')
break
else:
print('ok') #代码输出ok
注:Python中的for语句不会像C语言里一样会自动递增,千万要区分开来!
与C语言基本一致,此处不再分析