本文是Python基础篇(二),涵盖格式化输出及列表、元组、字典、集合的相关知识。讲解了字符串引号用法与format函数,详述列表的增删改查、排序等操作,介绍元组不可修改特性,说明字典键值对操作,解释集合去重及交并差集等,还附小练习与练习题。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

『行远见大』手把手教你学 Python 系列,100天从零基础小白华丽转变成深度学习大佬。同学你相信奇迹吗?相信的话,那就努力学习进步吧,时间会告诉你答案的!
大家好,我是行远见大。欢迎你与我一同建设飞桨开源社区,知识分享是一种美德,让我们向开源致敬!
欢迎来到这里,我会毫无保留地分享我学习 Python 的笔记与心得,让我们一起愉快地学习吧!
# 使用反斜杠,实现转义字符的功能print("\") # 打印反斜杠# print("") # 非法输出print(" a") # 空个tab再打印aprint("hello
world!") #
实现文本换行# 但在字符串前面加r,表示直接显示原始字符串,不进行转义print(r"hello
world!")a hello world! hello world!
# 单引号、双引号都能用作转义字符和输出文本sentence1 = 'I'm a programmer.'sentence2 = "K&R said "Hello, world!""# 妙用单引号、双引号可以使书写更优雅sentence3 = 'K&R said "Hello, world!"'print(sentence1)print(sentence2)print(sentence3)''' 三引号用来注释段落 '''paragraph = ''' 这是一个 由多行句子 构成的段落 '''print(paragraph)
I'm a programmer. K&R said "Hello, world!" K&R said "Hello, world!" 这是一个 由多行句子 构成的段落
print("1." + "{0} said "{1}, {2}!"".format("K&R","Hello","world"))print("2." + '{a} said "{b}, {c}!"'.format(a="K&R",b="Hello",c="world"))print("3." + '{0} said "{b}, {c}!"'.format("K&R",b="Hello",c="world"))# print("4." + '{a} said "{b}, {2}!"'.format(a="K&R",b="Hello","world")) # 非法输出1.K&R said "Hello, world!" 2.K&R said "Hello, world!" 3.K&R said "Hello, world!"
print("{0}".format("打印文本内容"))print("{{0}}".format("不打印文本内容"))# 打印浮点数,会四舍五入print("{0:.1f}{1}".format(12.345,"GB"))print("{0:.2f}{1}".format(12.345,"GB"))print("{0:.3f}{1}".format(12.345,"GB"))打印文本内容
{0}
12.3GB
12.35GB
12.345GB列表可以完成大多数集合类的数据结构实现。列表中的元素的类型可以不相同,它支持数字、字符串甚至可以包含列表(所谓嵌套)。
立即学习“Python免费学习笔记(深入)”;
列表是写在方括号[ ],用逗号分隔开的元素列表。
列表引值是以0位开始值,-1为从末尾的开始位置。
列表可以使用 + 操作符进行拼接,使用 * 表示重复。
# Python自带的List文档# list?# help(list)# dir(list)
list1 = [123] list2 = [456]print(list1 > list2)print(list1 < list2) list3 = list1 + list2print(list3) list4 = [123, 456]print((list1 > list2) and (list3 == list4))print((list1 > list2) or (list3 == list4))
False True [123, 456] False True
str = "shanghai"print(str)print(str[0]) # 打印单个元素print(str[0:5]) # [起始位置:结束位置:步进值]print(str[0:8:2])print(str[:6]) # 左闭右开print(str[6:])print(str + " 魔都") # 使用 + 操作符进行字符串拼接print(str * 3) # 使用 * 操作符进行字符串重复打印print((str+" ") * 3)
shanghai s shang saga shangh ai shanghai 魔都 shanghaishanghaishanghai shanghai shanghai shanghai
# 列表中可以存储混合类型testlist = [1, "列表"]print(type(testlist[0]))print(type(testlist[1]))
<class 'int'> <class 'str'>
namelist = ["A", "B", "C"]print(namelist[0], namelist[1], namelist[2])# 用for循环语句打印列表里的元素,其优点是只需要两行代码for name in namelist: print(name)# len()可以得到列表的长度print(len(namelist))# 用while循环语句打印列表里的元素,其优点是可以通过下标的变化,拿到每一个项,并对它们进行操作。length = len(namelist)
i = 0while i < length: print(namelist[i], end=" ")
i += 1A B C A B C 3 A B C
# append 函数,在末尾追加一个元素namelist = ["A", "B", "C"]for name in namelist: print(name, end=" ")
nametemp = input("请输入添加学生的姓名:")
namelist.append(nametemp)# 打印增加姓名后列表的数据for name in namelist: print(name, end=" ")A B C 请输入添加学生的姓名:A B C D
# extend 函数a = [1, 2, 3] b = [4, 5, 6] a.append(b) # 将列表当成一个元素,加入到 a 列表中print(a) # 形成了列表的嵌套a = [1, 2, 3] a.extend(b) # 将 b 列表中的每个元素,逐一追加到列表中print(a)
[1, 2, 3, [4, 5, 6]] [1, 2, 3, 4, 5, 6]
# 查看列表嵌套的元素schoolname = [["北京大学","清华大学"],["上海大学","浙江大学"],["厦门大学","中山大学"]]print(schoolname[0])print(schoolname[0][0])print(schoolname[1])print(schoolname[1][0])
['北京大学', '清华大学'] 北京大学 ['上海大学', '浙江大学'] 上海大学
# insert 函数a = [1, 2, 3] a.insert(1, 0) # 第一个变量表示下标,第二个变量表示元素(对象)print(a) # 指定下标位置插入元素
[1, 0, 2, 3]
namelist = ["A", "B", "C", "D", "E"]# delete 函数,在指定位置删除一个元素del namelist[2]# pop 函数,弹出末尾最后一个元素namelist.pop()# remove 函数,删除指定内容的元素namelist.remove("D")# 打印删除元素后,列表里剩余的数据for name in namelist: print(name, end=" ")A B
namelist = ["A", "B", "C", "B", "B"]# 注意:如果列表有重复内容,remove只删除第一个namelist.remove("B")for name in namelist: print(name, end=" ")A C B B
namelist = ["A", "B", "C"]# 修改指定下标的元素内容namelist[1] = "D"for name in namelist: print(name, end=" ")
A D C
# 修改一段元素a = range(7) b = list(a) b[3:5]=(8, 9)print(b)
[0, 1, 2, 8, 9, 5, 6]
# count 函数对列表中的某一元素进行计数mylist = ["a","b","c","a","b"]print(mylist.count("a"))
mylist.count("c")2
1
# index 函数用以搜索在list中第一个出现的元素mylist = ["a","b","c","a","b"]# 可以查找指定下标范围的元素,并返回找到对应数据的下标print(mylist.index("a",1,4))
print(mylist.index("a",0,4)) # 只会找到重复内容的第一个元素print(mylist.count("a")) # 统计某个元素出现了几次# print(mylist.index("a",1,3)) # 找不到会报错,因为范围区间,左闭右开 [1,3)3 0 2
# in/not in 判断元素是否在列表中mylist = ["a","b","c","a","b"]"C" in mylist
False
mylist = ["a","b","c","a","b"]"D" not in mylist
True
# 用if语句查找列表中的元素alphabet = input("请输入一个英文字母:")if alphabet in mylist: print("在列表中找到了相同的英文字母:%s" % alphabet)else: print("没有找到")请输入一个英文字母:在列表中找到了相同的英文字母:b
# 升序a = [1, 4, 5, 2, 3]# sort(reverse=false),默认等于Falsea.sort()print(a)# 降序a = [1, 4, 5, 2, 3] a.sort(reverse=True)print(a) a = [1, 4, 5, 2, 3]# 将列表所有元素反转a.reverse()print(a)
[1, 2, 3, 4, 5] [5, 4, 3, 2, 1] [3, 2, 5, 4, 1]
# 分片拷贝list1 = [5, 6, 7, 8, 9, 0, 1, 2] list2 = list1[:] list3 = list1 list1.sort()print(list1, list2, list3)# 如果没有[:],list2就会像list3那样随着list1改变而改变,list2是把list1里的值作为一条新的数据进行存储,而list3只是把数据指向了list1
[0, 1, 2, 5, 6, 7, 8, 9] [5, 6, 7, 8, 9, 0, 1, 2] [0, 1, 2, 5, 6, 7, 8, 9]
有三个办公室123,有八位老师abcdefgh,要求八位老师随机分配到三个办公室。
import random# 创建有3个元素的空列表,每个元素都是一个空列表offices = [[],[],[]]
names = ["a","b","c","d","e","f","g","h"]for name in names:
index = random.randint(0,2) # 三个办公室
offices[index].append(name) # 八位老师一个一个地添加入officesi = 1for office in offices: # 用 len()长度表示办公室老师人数
print("办公室 %d 的人数为:%d" % (i,len(office)))
i += 1
for name in office: print("%s" % name , end=" ") print(" ") print("-"*20)办公室 1 的人数为:2 f g -------------------- 办公室 2 的人数为:3 a c d -------------------- 办公室 3 的人数为:3 b e h --------------------
# Python自带的Tuple文档# tuple?# help(tuple)# dir(tuple)
tup1 = () # 创建空的元组print(type(tup1)) tup2 = (1)print(type(tup2)) # 这不是元组,这是整型tup3 = (1, )print(type(tup3)) tup4 = (1, 2, 3)print(type(tup4))
<class 'tuple'> <class 'int'> <class 'tuple'> <class 'tuple'>
''' 操作名称:其它类型对象转换成元组 操作方法:把对象放在里边,输出出来的就是元组了 '''mylist = [1, 2, 3, 4] tup5 = tuple(mylist)print(type(tup5))''' 操作名称:元组的成员关系 操作方法:in/not in '''tup6 = (1, 2, 3, 4)print(2 in tup6)print(5 not in tup6)''' 操作名称:得到重复元素数量 操作方法:count() 函数 操作名称:获取元组长度 操作方法:len() 函数 操作名称:获取元组元素最大值 操作方法:max() 操作名称:获取元组元素最小值 操作方法:min() '''tup7 = (0, 1, 1, 1, 1, 1, 2, 2, 3)print(tup7.count(1))print(len(tup7))print(max(tup7))print(min(tup7))# 元组的标志是括号内有逗号tup8 = (8, )print(tup8 * 8) tup9 = (8)print(tup9 * 8)
<class 'tuple'> True True 5 9 3 0 (8, 8, 8, 8, 8, 8, 8, 8) 64
tup1 = ("abc", "def", "123", "456", "789")print(tup1[0]) # 访问元组中的元素,通过下标直接访问print(tup1[-1]) # 访问最后一个元素print(tup1[1:4]) # 左闭右开,进行切片tup2 = (123, 456)
tup3 = ("abc", "def")
tup4 = tup2 + tup3 # 元组的加法操作print(tup4)
tup5 = tup4del tup5 # 删除了整个元组变量# print(tup5) # 会报错,tup5已被删除abc
789
('def', '123', '456')
(123, 456, 'abc', 'def')
# 修改元组元素tup6 = (1,2,3,4,5,6,7,8)# tup6[1] = 0 # 非法操作# 更新和修改一个元组的方法是用分片tup7 = tup6[:1] + (0,) + tup6[2:] tup7
(1, 0, 3, 4, 5, 6, 7, 8)
# Python自带的Dict文档# dict?# help(dict)# dir(dict)
# 字典的定义info = {"name":"行远见大", "nickname":"魔都吴彦祖"}# 字典的访问print(info["name"])print(info["nickname"])
# print(info["age"]) # 访问了不存在的键,会报错print(info.get("age")) # 使用get方法,没有找到对应的键,默认返回:Noneprint(info.get("age","18")) # 没找到的时候,可以设定默认值print(info.get("name","行远见大")) # 找到则返回原值行远见大 魔都吴彦祖 None 18 行远见大
info = {"name":"行远见大", "nickname":"魔都吴彦祖"}# 遍历字典中key、value、itemfor each_key in info.keys(): print(each_key)for each_value in info.values(): print(each_value)for each_item in info.items(): print(each_item)name
nickname
行远见大
魔都吴彦祖
('name', '行远见大')
('nickname', '魔都吴彦祖')# fromkeys函数mydict = {} # 新建一个空白字典print(mydict.fromkeys((1, 2, 3))) # 添加键print(mydict.fromkeys((1, 2, 3), "number")) # 添加值print(mydict.fromkeys(range(1, 4), "number"))print(mydict.fromkeys((1, 2, 3), ("one","two","three"))) # 添加多个值{1: None, 2: None, 3: None}
{1: 'number', 2: 'number', 3: 'number'}
{1: 'number', 2: 'number', 3: 'number'}
{1: ('one', 'two', 'three'), 2: ('one', 'two', 'three'), 3: ('one', 'two', 'three')}a = {1:"one", 2:"two", 3:"three"}
b = a.copy()
c = aprint(b)print(c)# b = a.copy() 是浅拷贝在内存中的位置是不一样的,c = a 是赋值在内存中的位置是一样的print(id(a), id(b), id(c)){1: 'one', 2: 'two', 3: 'three'}
{1: 'one', 2: 'two', 3: 'three'}
140180218566608 140180219063584 140180218566608c = {1:"one", 2:"two", 3:"three"}
c[4] = "four"print(a)print(b)print(c){1: 'one', 2: 'two', 3: 'three', 4: 'four'}
{1: 'one', 2: 'two', 3: 'three'}
{1: 'one', 2: 'two', 3: 'three', 4: 'four'}# 增info = {"name":"行远见大", "nickname":"魔都吴彦祖"}
my_age = input("请输入你的年龄:")
info["age"] = my_ageprint(info["age"])print(info)# setdefault 函数info = {"name":"行远见大", "nickname":"魔都吴彦祖"}
info.setdefault("age", "19")print(info)# update 函数info = {"name":"行远见大", "nickname":"魔都吴彦祖"}
my_age = {"age": "20"}
info.update(my_age)print(info)请输入你的年龄:18
{'name': '行远见大', 'nickname': '魔都吴彦祖', 'age': '18'}
{'name': '行远见大', 'nickname': '魔都吴彦祖', 'age': '19'}
{'name': '行远见大', 'nickname': '魔都吴彦祖', 'age': '20'}# 删# del 方法info = {"name":"行远见大", "nickname":"魔都吴彦祖"}del info["name"]print("删除name后:%s" % info)# print("删除后:%s" % info["name"]) # 删除了指定键值对后,再次访问会报错info = {"name":"行远见大", "nickname":"魔都吴彦祖"}print("删除前:%s" % info)del info# print("删除后:%s" % info) # 删除字典后再访问,报错# clear 函数info = {"name":"行远见大", "nickname":"魔都吴彦祖"}print("清空前:%s" % info)
info.clear()print("清空后:%s" % info) # 返回一个空的字典删除name后:{'nickname': '魔都吴彦祖'}
删除前:{'name': '行远见大', 'nickname': '魔都吴彦祖'}
清空前:{'name': '行远见大', 'nickname': '魔都吴彦祖'}
清空后:{}# new_dic没有随info的变化而变化,即没删干净info = {"name":"行远见大", "nickname":"魔都吴彦祖"}
new_dic = info
info = {}print(info)print(new_dic)print("-" * 50)# new_dic随info的变化而变化info = {"name":"行远见大", "nickname":"魔都吴彦祖"}
new_dic = infoprint(info)
info.clear()print(info)print(new_dic){}
{'name': '行远见大', 'nickname': '魔都吴彦祖'}
--------------------------------------------------
{'name': '行远见大', 'nickname': '魔都吴彦祖'}
{}
{}my_dict = {1: 'one', 2: 'two', 3: 'three', 4: 'four', 5: 'five'}print(my_dict.pop(2)) # pop 函数弹出对应键的值print(my_dict.popitem()) # popitem 函数是弹出最后一个项two (5, 'five')
# 改info = {"name":"行远见大", "nickname":"魔都吴彦祖"}
info["nickname"] = "上海吴彦祖"print(info["nickname"])上海吴彦祖
# 查# 字典的查询有两部分,键的查询和值的查询info = {"name":"行远见大", "nickname":"魔都吴彦祖", "age":18}print(info.keys()) # 得到所有的键:dict_keys(['name', 'nickname', 'age'])print(info.values()) # 得到所有的值:dict_values(['行远见大', '魔都吴彦祖', 18])print(info.items()) # 得到所有的项,每个键值对是一个元组# 遍历所有的键for key in info.keys(): print(key)# 遍历所有的值for value in info.values(): print(value)# 遍历所有的键值对for key,value in info.items(): print("keys = %s, ""value = %s" % (key, value))dict_keys(['name', 'nickname', 'age'])
dict_values(['行远见大', '魔都吴彦祖', 18])
dict_items([('name', '行远见大'), ('nickname', '魔都吴彦祖'), ('age', 18)])
name
nickname
age
行远见大
魔都吴彦祖
18
keys = name, value = 行远见大
keys = nickname, value = 魔都吴彦祖
keys = age, value = 18mylist = ["a","b","c","d"]for x in mylist: print(x)# 使用枚举函数 enumerate,同时拿到列表中的下标和元素内容for i,x in enumerate(mylist): print(i+1, x)
a b c d 1 a 2 b 3 c 4 d
# Python自带的Set文档# set?# help(set)# dir(set)
print(set([1, 1, 2, 2, 2, 3]))
num1 = { }print(type(num1))
num2 = {1, 2, 3, 4, 5}print(type(num2))# 集合不支持索引 index# num2[2]{1, 2, 3}
<class 'dict'>
<class 'set'>
# 不使用 Setnum3 = [0, 1, 2, 3, 4, 5, 4, 3, 2, 1] temp = [ ]for each in num3: if each not in temp: temp.append(each)print(temp)# 使用 Set''' 操作名称:其它类型对象转换成集合 操作方法:set() '''print(set(num3))''' 操作名称:获取集合长度 操作方法:len() '''print(len(set(num3)))''' 操作名称:获取最大的元素 操作方法:max() 操作名称:获取最小的元素 操作方法:min() '''print(max(set(num3)))print(min(set(num3)))
[0, 1, 2, 3, 4, 5]
{0, 1, 2, 3, 4, 5}
6
5
0# 增''' 操作名称:向集合添加元素 操作方法:add方法 '''my_set = set([0, 1, 2, 3, 4, 5, 4, 3, 2, 1]) my_set.add(6) my_set
{0, 1, 2, 3, 4, 5, 6}# 删''' 操作名称:移除集合中的元素 操作方法:remove方法 '''my_set = set([0, 1, 2, 3, 4, 5, 4, 3, 2, 1]) my_set.remove(4)print(my_set)''' 操作名称:弹出元素 操作方法:pop方法 '''my_set.pop()# 弹出最后一个元素print(my_set.pop())print(my_set)''' 操作名称:清除元素 操作方法:clear方法 '''my_set.clear()print(my_set)''' 操作名称:删除集合 操作方法:del '''del my_set# print(my_set)
{0, 1, 2, 3, 5}
1
{2, 3, 5}
set()
# 查my_set = set([0, 1, 2, 3, 4, 5, 4, 3, 2, 1])print(0 in my_set)print("0" in my_set)'''
操作名称:遍历集合
操作方法:通过for循环
'''for i in my_set: print(i, end=" ")True False 0 1 2 3 4 5
| 名称 | 是否有序 | 是否可变类型 |
|---|---|---|
| 列表[ ] | 有序 | 可变类型 |
| 元组( ) | 有序 | 不可变类型 |
| 字典{ } | 无序 | key 不可变,val 可变 |
| 集合{ } | 无序 | 可变类型(内容不重复) |
有序:可以通过下标来访问。可变:元素的类型可以是数字也可以是字符串。
要求:补全代码并使程序正常运行
# 请在此处作答第一题my_list = [229, 10, 331, 58, 520, 123]
要求:使用 sort( ) 函数
# 请在此处作答第二题
要求:分片拷贝
# 请在此处作答第三题a = [1, 3, 5, 7, 9]# 补全代码并使程序正常运行print(b)
要求:for 循环语句
# 请在此处作答第四题 distance = [] height = [] start = 100.0 # 起始高度time = 10 # 次数# 补全代码并使程序正常运行
要求:while 循环语句
# 请在此处作答第五题print("来玩石头剪刀布啦,这次是三局两胜制~")import random
all_choices = ['石头', '剪刀', '布']# 补全代码并使程序正常运行win_list = [ ]
prompt = '''请出拳:
(0) 石头
(1) 剪刀
(2) 布
'''cwin = 0pwin = 0# 补全代码并使程序正常运行while :
print('你出了:%s,计算机出了:%s' % (player, computer)) if player == computer: print('[33;1m平局[0m') elif [player, computer] in win_list: print('[32;1m你赢了![0m')
pwin += 1
else: print('[31;1m你输了![0m')
cwin += 1else: if cwin > pwin: print('三局两胜!你输了!') else: print('三局两胜!你赢了!')以上就是『行远见大』手把手教你学 Python:基础篇(二)的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号