python基础语法:
1.复习
1.变量名的声明:
1.变量名 = 值;
2.变量名:标识符,不能使用关键字;
3.变量名的写法;
4.声明变量/给变量赋值的原理。
2.运算符:
1.+,-,*,/,//
2.<,>,==,!=,%=...
3.运算符的优先级:可以通过加括号改变运算顺序
3.字符串:
- 字符编码(Unicode),char(),ord()的用法
- 获取单个或者部分字符:字符串[index],字符串[下标1:下标2:步进]
- 运算:+,*,>,<,=,(比较运算都支持),in,not,len()
- 相关方法
4.分之:
1.if 条件语句:
执行语句
2.if-else
if 条件语句:
执行语句1
else:
执行语句2
3.if-elif-else
elif 条件语句:
5.循环结构
1.for循环
for 变量名 in 序列:
循环体
执行过程
2.while循环
while 条件语句:
循环体
执行过程
3.break,continue,else
break和continue写在循环体中的
else写在循环外,循环遇到break,else中的语句不会执行
二,列表:
- list(列表)
1.列表是python中的容器类型;
2.有序的可变的容器(可变指的是列表中元素和元素的位置可变);
3.元素:指的是列表中每一个内容
4.有序->可以通过下标来获取元素;
5.可变->可以进行增删改(查)
1.列表的声明:
a.声明变量,赋列表值;
例如:声明了一个列表,列表中有5个元素,分别是90,80,97,67,55
score = [90, 80, 97, 67, 55]
print(score,type(score))
2.元素:指的是列表中的每一个内容,列表中的元素可以是任意类型的数据
person = ['吕', 18, '男']
一个列表中的元素可以不一样
print(person)
name = '王海飞'
age = 20
person2 = [name, age, '男']
print(person2)
name = []
print(name,type(name))
将其他数据类型转换成列表(只有序列才能转换:字符串和range,字典,元祖,集合,生成式,迭代器)
chars = list('abcd')
print(chars)
numbers = list(range(10))
print(numbers)
3.列表的增删改查
1,获取列表元素
a.获取单个元素:列表[下标]
b.下标范围:0元素个数-1或者-1元素个数
注意:获取单个字符下标不可以越界
步进值是正的就从前往后取,步进是负的就是从后往前取
tv_names = ['请回答1988', ’琅琊榜‘, ’甄嬛传‘]
print(tv_names[1])
print(tv_names[-1])
c.获取部分元素(切片):列表[下标1:下标2:步进]
tv_names = ['请回到1988', '琅琊榜', '甄嬛传']
print(tv_names[1])
print(tv_names[-1:-4:-1])
print(tv_names[:8:1])
d.遍历(一个一个的获取每个元素)
可以将列表直接放在for循环in的后面,循环过程中,for后面的变量取得是列表中的元素
for item in tv_names:
print(item)
print(tv_names[2])
练习:写一个列表来保存一个班的学生的成绩(6个),统计班上成绩在80分以上的成绩
count=0
scores=[65, 88, 72, 76, 96, 99]
for score in scores:
if score>80:
count+=1
print(count)
2.改(修改元素的值)
语法:列表名[下标]=新值 通过下标来获取元素,然后重新赋值.
person = ['小吕', 18, '乒乓球']
person[1] = 23 //修改person中下标是1的元素
print(person)
person[2] = '篮球'
print(person)
3.增(增加列表元素)
a.列表.append() 列表的最后去添加一个元素
person.append('男')
print(person)
person.append(80)
print(person)
b.列表.insert(下标,元素) 功能:在指定的下标前插入一个元素。
列表中的元素发生改变是,列表的每一个元素下标会根据新的位置重新分配
person.insert(0,'001')
print(person)
print(person[1])
练习:录入5个学生的成绩,并且保存在一个列表中
scores = []
for x in range(5):
score = int(input("请输入学生成绩:"))
scores.insert(0,score)
print(scores)
4.删除(删除列表中的元素)
1.del 列表[下标]-->根据下标去删除列表的元素
del 语句是python中删除数据的语法,他可以删除任何数据
del 变量 (删除变量) del 列表 (删除整个列表)
foods = ['辣条', '棒棒糖', '大蒜', '火锅', '饼干']
del foods[2]
print(foods)
2.列表.remove 元素 删除列表中某个值,如果这个元素在列表中有多个,只删除最前面那个
foods.remove('饼干')
- 列表.pop(下标)-->将列表中指定的值取出来
foods = ['辣条', '棒棒糖', '大蒜', '火锅', '饼干']
food = foods.pop(1)
print(foods)
练习:想尽一切办法将一个保存成绩的列表中,成绩低于60分的全部删除
[78, 59, 40, 90, 89, 45, 69, 30]
scores = [78, 59, 40, 90, 89, 45, 69, 30]
for score in scores[:]:
if score<60
scores.remove(score)
print(scores)
**注意:以后我们遍历列表元素的时候,我们一般遍历她的拷贝值**
5.操作:
1.列表1+列表2:
a = [1,2]
list = [1,2]+['abc',100]
print(list)
**注意:将1中元素和列表2中的元素一次合并,产生一个新的列表**
2.*操作:
列表1 * N次,产生一个新的列表
list2 = a * 3
print(list2)
3.求列表的长度
len(list)
print(len(list))
4.列表.extend(序列):将序列中的元素添加到列表中
numbers = [1, 2, 3, 4]
numbers.extend([100,200])
ptint(numbers)
numbers.extend('abc')
print(numbers)
5.将列表中的元素反序
numbers = [1, 2, 3, 4, 5, 6]
numbers.reverse()
print(numbers)
6.将列表中的元素反序
numbers = [1, 2, 3, 4, 5]
numbers.reverse()
print(numbers)
numbers = [2,5,6,9,3,7]
for _ in range(len(numbers)):
x = numbers.pop()
print(x,end ='')
7.列表.sort :对列表元素进行排序(默认是升序)
numbers.sort()
print(numbers)
8.列表.copy():将列表中的元素全部拷贝,产生一个新的列表。相当于[:]
注意:这儿是浅切片(只考虑每个列表的值)
```python
numbers = [1, 2, 3, 4]
numbers2 = numbers.copy()
print(numbers2)
numbers1 = [1, 2]
numbers = [numbers1, 3, 'abc']
deeocopy//深度切片:通过地址找值,再把值赋给新的地址,再把新的变量给地址存储
new_numbers2 = copy.deepcopy(numbers)
numbers1.append(100)
print(numbers)
print(new_numbers2)
总结:
- 浅拷贝:只是单纯的将值拷贝(如果是对象就直接拷贝对象的地址)
- 深拷贝:会拷贝对象得知对应的值,产生一个新地址,然后新的地址进行赋值
6.元祖
元祖就是不可变的列表.列表中除了和可变相关的内容以外,其他的全部适用于元祖
1.声明元祖:
tuple = (1, 2, 3, 10, [1, 2])
print(tuple,type(tuple))
注意:如果要写一个元祖元素个数是1的字面量,需要在那一个元素后面加逗号
t2 = (100,)
print(t2,type(t2),len(t2))
t3 = () #空元祖
print(t3, type(t3))
2.查相关的
t3 = ('red','yellow','green')
print(t3[2])
print(t3[0:3])
for item in t3:
print(item)
3.特殊操作
point = (100,200)
print(point[0],point[1])
通过两个变量来获取元祖的唯一的两个元素的值
x, y = point
print(x, y)
user = ('小吕', 90, 98, 100, '男')
通过在变量前加,获取元祖/列表中的一部分元素值,结果是一个列表*
name, *score, sex = user
print(name, score, sex)
user2 = ('肖红', 90, 85)
name, *score = user2
print(name,score)
*score, name, sex = (89,98,'小兰', 'boy')
print(score, name, sex)
4.多个值之间用逗号隔开,对应的数据也是元祖
a=1, 2, 3, 4 //相当于 a = (1, 2, 3, 4)
x, y = 100, 200 //相当于x,y = (100, 200)
print(x,y)
print(a, type(a))