引言
本篇文章将继续讲解关于Python的基础知识,也就是一些基本语法
一.列表
- 1. 定义
列表类似于C++中的数组,下标也是从0开始,但是不一样的是,列表可以反着数下标,从-1开始,如图所示:

定义如下代码所示,可以不用像C++一样定义空间大小
names = ['mzk', 'ena', 'mfy', 'knd']
- 2. 读取与修改
读取与修改都与C++相同,利用数字下标进行读取和修改
print(names[0])
names[0] = 'mizuki'
print(names[0])
- 3. 添加元素
有两种方式删除元素
3.1 append
是直接在列表后添加一个元素,类似于C++中的append
names.append('miku')
3.2 insert
有两个参数,第一个参数是下标,第二个参数添加的元素,是直接取代相应下标的元素,然后所有元素依次往后面移动一位
names.insert(0, 'luka')
- 4. 删除元素
有三种方式删除元素
4.1 利用del删除
del + 要删除的列表 + 下标
del names[0]
4.2 利用pop删除
相当于删除末尾的元素,并且会返回这个元素
name = names.pop()
4.3 remove删除
用来删除对应内容的元素,如果存在多个相同的元素,会从头开始删,执行一次函数只能删除一个
name.remove('luka')
- 5. 其他方法
5.1 按字母排序
第一种是原列表不变,新列表接受排序后的列表,sorted
第二种是直接对原列表进行排序,sort()
names2 = sorted(names)
print(names)
print(names2)
names.sort()
print(names)
5.2 逆转排序(reserve)
将列表中的元素逆转顺序
names.reserve()
5.3 获取列表长度
n = len(names)
- 6. 索引越界
与C++相同,列表不能越界访问,越界访问也会直接报错
二.元组与切片
- 1. 元组
对比列表写法不同的是,元组将[]变成了(),并且元组在意义上是不能直接使用元组+下标修改变量的,只能重新对元组变量进行重新定义,列如下面的代码,大家可以试着去执行一下
names = ('mzk', 'knd', 'ena')
#直接修改,错误
names[2] = 'mfy'
#重新定义,符合
names = ('mzk', 'knd', 'mfy')
- 2. 切片
切片的类型很多,这里将所有的切片类型给出来,大家自己对应代码去理解
x = ['a', 'b', 'c', 'd', 'e']
print(x[1 : 3])#从1开始到3之前
print(x[ : 3])#从0开始到3之前
print(x[2 : ])#从2开始到最后
print(x[-2 : ])#从-2开始,到最后一个(-2 到 -1)
print(x[:])#从开头到结尾
print( x[0: 4 : 2])#从0开始,每次+2,到4之前
三.字典
- 1. 概念
相当于C++中的map,也是一个key对应一个value
- 2. 书写
用{}进行包围内容,通过:链接key与value,代码如下
person = {'name' : 'mzk', 'age' : 17, 'gender' : 'girl'}
- 3. 读取
读取的方式也与C++中的map类似,利用key作为下标进行读取,也可以使用get函数进行读取,利用get函数进行读取如果不存在这个key会返回None,如果是直接读取下标,下标不存在就会报错
print(person['name])
print(person['age'])
- 4. 增删改
可以通过下标的方式直接增加,删除则使用del + 字典 + 下标的方式删除,改也是直接通过下标进行修改
person['like'] = 'sugar'
- 5. 遍历
5.1 同时遍历key和value
通过items()函数来实现
for key, value in person.items():
print(key, value0
5.2 只遍历key
通过keys函数实现
for key in person.keys():
print(key)
5.3 只遍历value
通过values函数实现
for value in person.values():
print(value)
- 6. 字典列表
字典列表的意思就是在将字典放在列表当中,这样可以将多个字典集合在一起,使用方式如下
#创建字典列表
people = [{'name' : 'mzk', 'age' : 17}, {'name' : 'ena', 'age' : 18}]
#直接通过下标访问
print(f"{people[0]['name']} : {people[0]['age']}")
print(f"{people[1]['name']} : {people[1]['age']}")
#通过for循环遍历
for person in people:
print(person['name'])
print(person['age'])
- 7. 字典嵌套
字典里对应的键(value)也可以是一个字典或者是列表
person = {'name' : 'mzk', 'friends' : ['ena', 'mfy', 'knd']}
print(person['name'])
print(person['friends'])
- 8. 集合类型
利用set函数返回一个新的集合,在这个集合里没有重复值,用法如下
xx = ['a', 'b', 'c', 'a', 'b']
zz = set(xx)
print(zz)
四.if分支结构
- 1. 单分支
与C++不同的是,if的条件不用将条件用括号包起来,直接写条件就可以了,注意不要忘了冒号:
name = 'mzk'
if name == 'mzk':
print(name)
- 2. 双分支
与C++相同,双分支要用到else
name = 'mzk'
if name == 'mzk':
print(name)
else:
print('NO')
- 3. 多分支
与C++不同的是,Python中用elif代替了else if
name = 'mzk'
if name == 'mzk':
print('mzk')
elif name == 'ena':
' print('ena')
else:
print('NO')
- 4. 或者or
与C++中的or是相同的,表示只要满足其中的一个条件就返回True
name = 'mzk'
if name == 'mzk' or name == 'ena':
print(name)
- 5. 并且and
与C++中的and是相同的,表示要同时满足这些条件就返回True
n = 10
if n < 15 and n >5:
print('5 < n < 15')
- 6. 条件in
代表如果这个变量存在于列表内,返回True
names = ['mzk', 'ena', 'knd']
name = 'mfy'
if name in names:
print('存在')
else:
print('不存在')
五.循环遍历和range函数
- 1. 基本语法
这里先给出代码,再进行讲解
for name in names:
print(name)
print('循环结束')
这里name作为一个临时变量,从头开始遍历names这个列表,直到列表结束
- 2. 常见错误
a.丢失冒号
b.忘记第一行的缩进
c.循环后不必要的缩进
d.非循环时不必要的缩进
- 3. range函数
3.1 一位参数
这里的参数代表的是从0到这个参数之前,也相当于循环次数
for n in range(5):
print(n) # 0 1 2 3 4
3.2 两位参数
第一个参数是起始的数字,第二个参数是代表在这个参数之前
for n in range(1,5):
print(n) # 1 2 3 4
3.3 三位参数
第一个参数是起始的数字,第二个参数是代表在这个参数之前,第三个参数是每次加几
for n in range(2, 11,2):
print(n) # 2 4 6 8 10
3.4 三位参数(逆序)
相当于第三个参数是负的,反着走
for n in range(9, 2,-2):
print(n) # 9 7 5 3
3.5 range生成列表
通过list函数,将range转化成一个列表,如下所示
xx = list(range(1, 6))
print(xx)
这里再给几个算最大,最小,总和的函数
#最大
print(max.(xx))
#最小
print(min.(xx))
#总和
print(sum.(xx))
- 4. 列表推导式
相当于将for函数与range函数结合生成列表
xx = [n * 2 for n in range(1, 5)]
print(xx) # 2 4 6 8
六.练习
a.打印1-20
b.生成1-100,再逐一打印
c.生成1-10的立方列表,并且打印
d.写一个判断奇偶的函数
总结
这些基本语法虽然都很简单,但是很重要,在下一篇还会接着讲解Python的基本语法

评论(0)
暂无评论