【Python学习笔记】第二天:Python具体语法入门

这几天玩太High了,根本没有学习(打脸hhh)。今天继续学习Python入门的一些知识吧!


函数

一.函数定义和调用:

定义:如果在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数

Python中定义函数方法如下:

def 函数名():
	语句块

与C语言定义函数需要先定义函数返回类型不同,Python定义函数只需要声明def(我要声明函数啦),函数块内如果添加return也可以返回多个值(不像C只能一个这样子),Python函数中的return可以返回元组,列表、字典,只要承接的变量能够储存多种类型的变量,就可以一次性返回多个数据。


二、函数参数:

“形参”和“实参”的定义与C语言相通:

定义时小括号中的参数,用来接收参数用的,称为 “形参” 调用时小括号中的参数,用来传递给函数用的,称为 “实参”

在实际应用中体现为函数中的参数和主函数中的变量是不能混套的,除非建立全局变量,这些都与C语言相同


三、缺省函数:

缺省函数就是在调用函数时,如果某个参数没有传入值,则调用初始设置的默认值,这样可以降低程序出错的概率
我们用一组实际代码表现这个缺省函数:

# 缺省函数
def PrintNameAndAge(name,age=35):
	print('name=%s' % name)
	print('age=%d' % age)
PrintNameAndAge(name="Dick",age=9)
PrintNameAndAge(name="Dick") # 在函数执行过程中 age去默认值35

得到的结果如下:

name=Dick
age=9
name=Dick
age=35

注意:带有默认值的参数需要位于参数列表的最后面


四、有返回值的函数:

实际开发中,有时候我们传入一些数据给函数,进行一系列的处理后需要得到一个返回值,此时就需要知道如何返回函数得到的数值

来一组实例简单理解一下:

# 返回函数
def AddNum(a,b):
    return a + b
Num = AddNum(10,4)
print(Num)

注意:如果存在多组ruturn,那么函数在运行第一个return时即刻退出函数,后面的return不再执行


五、 引用:

与C语言中指针的调用相似,在Python中,值是靠引用来传递来的

我们可以用id()来判断两个变量是否为同一个值的引用。 我们可以将id值理解为那块内存的地址标示

实例:

a = 1
print(id(a))
b = a
print(id(b))
print('')
a = 2
print(id(a))
print(id(b))

结果:

140373732235568
140373732235568

140373732235600
140373732235568

我们可以发现,b=a这行语句实际上是将1这个值存的地址通过传值传给了b,a发生改变不会引起b值的改变

打个比方,a是某小区1栋1单元101室的住户,a邀请b来他家住几天并把门牌号(地址)告诉了b,b住进了1栋1单元101室,之后a搬走了,房子留给了b,b仍然可以通过地址找到1栋1单元101室,与a没有直接关系


列表

一、列表定义:

Python中的列表没有C那么严谨,定义时没有定义它的类型,可以理解成是混用类型的C语言数组。

列表可以作为一个方括号内的逗号分隔值出现。 数组的数据项不需要具有相同的类型 创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。

注意:初学者比较容易犯错的一点是,无论是C语言还是Python,编程语言中数组或列表一般以0开始计数,比如一个容量为5的列表,它的计数从0开始,位置分别是0,1,2,3,4

实例:

student = ['Chenzirui','Yusizhe','Wujunjie']
print(student)

结果:

['Chenzirui', 'Yusizhe', 'Wujunjie']

二、访问列表元素:

访问列表元素一般直接使用print()函数将某位置的元素直接输出,如下:

student = ['Chenzirui','Yusizhe','Wujunjie']
print(student[0]) # 输出第一个元素
print(student[-1]) # 输出倒数第一个元素
print(student[0:2]) # 输出第一个元素到第三个元素之前的元素
print(student[0:]) # 从第一个开始输出
print(student[:-1]) # 从倒数第一位开始数,输出所有之前的元素输出

结果:

Chenzirui
Wujunjie
['Chenzirui', 'Yusizhe']
['Chenzirui', 'Yusizhe', 'Wujunjie']
['Chenzirui', 'Yusizhe']

为了方便记忆,我们可以将python中的(a,b)或者[a,b]简单理解成高中数学语言中的[a,b),也就是a可以取到,b取不到,这一点和C语言是相通的,比如for(int i=0,i<n;++i),就是遍历0到n-1之间的数


三、更新列表元素:

增加数组中的元素

列表的更新通常通过两种方法,append()与insert(),前者是在列表的后方增加一个元素(类似于C语言中的stack堆),后者实在指定位置插入一个元素

具体的使用如下:

student = ['Chenzirui','Yusizhe','Wujunjie']
print(student)
student.append('dashabi')
print(student)
student.insert(2,'liangzhichao')
print(student)

结果:

['Chenzirui', 'Yusizhe', 'Wujunjie']
['Chenzirui', 'Yusizhe', 'Wujunjie', 'dashabi']
['Chenzirui', 'Yusizhe', 'liangzhichao', 'Wujunjie', 'dashabi']

修改元素的数据可以直接在某位置直接修改即可


删除数组中的元素

1.删除末尾的元素

student = ['Chenzirui','Yusizhe','Wujunjie']
student.pop()
print(student)

结果:

['Chenzirui', 'Yusizhe']

2.删除指定位置元素

student = ['Chenzirui','Yusizhe','Wujunjie']
student.pop(1)
print(student)

结果:

['Chenzirui', 'Wujunjie']

3.del的使用

student = ['Chenzirui','Yusizhe','Wujunjie']
del student[0]
print(student)

结果:

['Yusizhe', 'Wujunjie']

Python列表脚本操作符

在这里插入图片描述


列表排序:

cmp -----可选参数, 如果指定了该参数会使用该参数的方法进行排序。
key -----主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse -----排序规则,reverse = True 降序, reverse = False 升序(默认)

一、普通排序

  • 默认升序
num = [213,123,2,1,41,2]
num.sort()
print(num)

结果:

[1, 2, 2, 41, 123, 213]
  • 修改reverse是其降序排列
num = [213,123,2,1,41,2]
num.sort(reverse=True)
print(num)

结果:

[213, 123, 41, 2, 2, 1]

二、以指定元素为依据降序排序

# 返回第二个关键字
def ReturnSceond(data):
    return data[1]

data = [(7,'Chen'),(10,'Yu'),(5,'Wu'),(9,'Ying')]
data.sort(key=ReturnSceond,reverse=True)
print(data)

结果:

[(10, 'Yu'), (9, 'Ying'), (5, 'Wu'), (7, 'Chen')]

小应用

题目:输入n个实数,先输出他们的降序后的结果,然后计算其平均值

# 求n个实数的平均数
num = []
def avgnum(num,n=1):
    sum = 0
    for i in range(0,n): # 相当于for(int i=0;i<n;++i)
        sum += num[i]
    sum /= (n+0.0)
    print('{:.0f}个实数的算数平均数为{:.2f}'.format(n,sum))

n = int(input('输入n个需要想加的实数:'))
for i in range(0,n):
    temp = eval(input()) #eval()函数将输入转化为Python可以识别的变量类型赋给temp
    num.insert(i,temp)
print('')
num.sort(reverse=True) # 降序排序
print ('降序排序得:',num)
avgnum(num,n)

结果:

输入n个需要想加的实数:3
12312.123
22.2
23123

降序排序得: [23123, 12312.123, 22.2]
3个实数的算数平均数为11819.11
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值