认识列表
容器的基本特征:一个容器型的数据可以同时保存多个其他的数据
1.什么是列表(list)
1)列表长什么样子:列表是容器型数据类型(序列);讲[]作为容器的标志,里面多个元素用逗号隔开:[元素1,元素2,元素3,…]
2)列表的特点:列表是可变的(元素的个数、值和顺序可变) - 增、删、改、查;列表是有序的 - 支持下标操作
3)列表对元素的要求:没有要求(不管什么类型的数据都可以作为列表的元素)
# 1)空列表
list1 = []
list2 = []
print(type(list1), type(list2)) # <class 'list'> <class 'list'>
print(bool(list1), bool(list2)) # False False
print(len(list1), len(list2)) # 0 0
# 2) 列表可以同时保存多个数据 任何类型的数据
list3 = [89, 90, 76, 99, 58, False, '男', 'abd', '莹莹']
print(list3)
list4 = [[1, 2], [3, 4], [4, 5]]
print(len(list4))
- 查 - 获取元素
- 查分为三种情况:获取单个元素、切片、遍历
- 获取单个元素
"""
语法:列表[下标]
功能:获取列表中指定下标对应的元素
说明:
列表 - 任何结果是列表的表达式,比如:保存列表的变量、具体的列表值等
[] - 固定写法
下标 - 下标又叫索引,是元素在有序序列中位置信息
pyhton中有序序列中每个元素都有两组下标值,分别是:从前往后从0开始递增的下标值;从后往前从-1开始递减的下标值
"""
names = ['甄姬', '貂蝉', '韩信', '吕布', '赵云', '后羿', '鲁班', '狄仁杰']
print(names[1], names[-1], names[3])
# 2) 遍历
"""
方式1 - 直接获取列表中的每个元素
for 变量 in 列表:
循环体
方式2 - 先获取到每个元素的下标值,然后通过下标在获取元素
for 下标 in range(len(列表)):
循环体
for 下标 in range(-1,len(列表)-1,-1)
lange(len(列表)) == range(列表中元素的个数)
方式3 - 同时获取列表中每个元素和元素对应的下标
for 下标, 元素 in enumerate(列表)
"""
print('----------------------------华丽的分割线-----------------------')
for x in names:
print(x)
print('----------------------------华丽的分割线-----------------------')
for index in range(len(names)):
print(index, names[index])
print('----------------------------华丽的分割线-----------------------')
for index, item in enumerate(names):
print(index, item)
# 练习1: 统计不及格人数
print('----------------------------华丽的分割线-----------------------')
scores = [89, 67, 56, 90, 98, 30, 78, 51, 99]
count = 0
for x in scores:
if x < 60:
count += 1
print('不及格人数:', count)
# 练习2:统计列表中整数的个数
list7 = [89, 9.9, 'abc', True, 'abc', '10', 81, 90, 23]
count = 0
for x in list7:
if type(x) == int:
count += 1
print('整数的个数', count)
# 练习3:求nums中所有偶数的和
nums = [89, 67, 56, 90, 98, 30, 78, 51, 99]
count = 0
for x in names:
if x % 2 == 0:
count += 0
print('所有偶数的加:', count)
列表的增、删、改、查
# 1. 增 - 添加元素
# 1)添加单个元素
"""
列表.append(元素) - 在列表的最后添加一个元素
列表.insert(下标,元素) - 在指定下标对应的元素前插入指定元素
"""
movies = ['五十六度灰', '哥斯拉大战金刚', '挑花侠大战菊花怪']
print(movies) # ['五十六度灰', '哥斯拉大战金刚', '挑花侠大战菊花怪']
movies.append('肖生克的救赎')
print(movies) # ['五十六度灰', '哥斯拉大战金刚', '挑花侠大战菊花怪', '肖生克的救赎']
movies.insert(2, '沉默的羔羊')
print(movies) # ['五十六度灰', '哥斯拉大战金刚', '沉默的羔羊', '挑花侠大战菊花怪', '肖生克的救赎']
# 2)批量添加
# 列表1.extend(列表2) - 将列表2元素全部添加到列表1的后面
movies.extend(['让子弹飞', '触不可及'])
print(movies)
scores = [89, 67, 56, 90, 98, 30, 78, 51, 99]
list1 = []
for x in scores:
if x >= 60:
list1.append(x)
print(list1)
第一周作业
一、选择题
-
下列变量名中不合法的是?(C)
A. abc
B. Npc
C. 1name
D ab_cd
-
下列选项中不属于关键字的是?(B)
A. and
B. print
C. True
D. in
-
下面哪个选项对应的代码写法是正确的?(C)
A.
print('Python') print('新手村')
B.
print('Python') print('新手村')
C.
print('Python') print('新手村')
D.
print('Python''新手村')
-
下面选项中能打印出50的是?(B)
A.
print('100 - 50')
B.
print(100 - 50)
-
关于引号,下面选项中使用正确的是?(D)
A.
print('hello)
B.
print("hello')
C.
print(“hello”)
D.
print("hello")
二、编程题
-
写代码在控制台打印
good good study, day day up!
print('good good study, day day up!')
-
写代码在控制台打印5次
you see see, one day day!
for _ in range(5): print("you see see, one day day!")
-
写代码打印数字 11、12、13、… 21
for x in range(11, 22): print(x)
-
写代码打印数字 11,13,15,17,…99
for x in range(11, 100,2): print(x)
-
写代码打印数字:10、9、8、7、6、5
for x in range(10, 4, -1): print(x)
-
写代码计算:1+2+3+4+…+20 的和
num = 0 for x in range(1, 21): num += x else: print(num)
-
写代码计算100以内所有偶数的和
num = 0 for x in range(0, 100, 2): num += x else: print(num)
-
写代码统计100~200中个位数是3的数的个数
count = 0 for x in range(100, 200): if x % 10 == 3: count += 1 else: print('统计100~200中个位数是3的数的个数:', count)
-
写代码计算
2*3*4*5*...*9
的结果num = 1 for x in range(2, 10): num *= x else: print(num)
-
输入一个数,如果输入的数是偶数就打印
偶数
否则打印奇数
num = int(input("请输入一个数:")) if num % 2 == 0: print("偶数!") else: print("奇数!")
-
统计1000以内能被3整除但是不能被5整除的数的个数。
count = 0 for x in range(0, 1000, 3): if x % 5 != 0: count += 1 else: print('1000以内能被3整除但是不能被5整除的数的个数:', count)