Python学习--day04
补充
-
解释器/编译器
-
补充:编译型语言和解释型语言?
# 编译型:代码写完后,编译器将其变成成另外一个文件,然后交给计算机执行。 # 解释型:写完代码交给解释器,解释器会从上到下一行行代码执行:边解释边执行。 【实时翻译】
-
1.列表
-
公共功能
-
len
users = ["李邵奇","奇航",99] val = len(users) print(val) # 3
-
索引
users = ["李邵奇","奇航",99] val = users(0) print(val) # 3
-
切片
users = ["李邵奇","奇航",99] val = users[0:2]
-
删除(字/布尔/字符串除外)
users = ["李邵奇","奇航",99] # 方式一 users.pop(1) print(users) # 方式二: del users[1] print(users)
注意:
- 字符串本身不能修改或者删除(因为它是不可变类型)v1 = "alex".upper()
- 列表是可变类型
-
修改(字/布尔/字符串除外)
users = ["李邵奇","奇航",99] users[2] = 66 users[0] = '李杰' users[0][1]
-
步长
users = ["李邵奇","奇航",99] val = users[0:2:2]
-
练习题
""" 实现一个整数加法计算器(两个数相加): 如:content = input("请输入内容:") 用户输入:5+9或5+ 9或5 + 9(含空白),然后进行分割转换最 终进行整数的计算得到结果。 """ #我的思路 content = input("请输入内容:") list_input = content.split("+") number1 = int(list_input[0].strip()) number2 = int(list_input[1].strip()) print(number1+number2) #老师的思路 # 思路一: """ content = input('请输入:') # [5+9] 或 [5 +9] 或者 [ 5 + 9 ] content = content.strip() # [5+9] 或 [5 +9] 或者 [5 + 9] v1 = int(content[0]) v2 = int(content[-1]) v3 = v1 + v2 """ # 思路二: 更智能的伸缩功能 """ content = input('请输入:') # [5+9] 或 [5 +9] 或者 [ 5 + 9 ] content_len = len(content) index = 0 total = 0 while True: char = content[index] if char.isdigit(): total += int(char) index += 1 if index == content_len: break print(total) """ # 思路三: 与我的思路相近 """ content = input('请输入:') # [5+9] 或 [5 +9] 或者 [ 5 + 9 ] result = content.split('+') # print(result) # ['55 ', ' 99 '] v1 = int(result[0]) # "55" v2 = int(result[1]) # " 99 " v3 = v1 + v2 print(v3) """
-
for循环
""" users = ['李邵奇','利奇航','张三丰','李子森'] for i in users: print(i) """ """ users = ['李邵奇','利奇航','张三丰','李子森'] for i in users: # 第一次循环:i=“李邵奇” print(i) for ele in i: print(ele) """
独有功能
-
append,在列表的最后追加一个元素
users = [] users.append('alex') print(users
""" 示例一: users = [] while True: name = input('请输入姓名:') users.append(name) print(users) """ """ 示例二: # 录入用户和密码 users = [] for i in range(0,3): name = input('请输入用户名和密码:') users.append(name) print(users) # ['alex,123', 'oldboy,888', 'lishaoqi,123'] # 用户和密码校验 username = input('请输入要登陆用户名:') password = input('请输入要登陆密码:') for item in users: result = item.split(',') # ['alex','123'] user = result[0] pwd = result[1] if user == username and pwd == password: print('登陆成功') break """
-
insert
-
remove
-
pop
-
clear
-
-
总结
-
增
- append / insert
-
删
- remove / pop / clear / del users[2]
-
改
- users[3] = "新值"
-
查
- 索引/切片
-
列表嵌套
-
users = ["alex",0,True,[11,22,33,"老男孩"],[1,['alex','oldboy'],2,3]] users[0] users[2] users[0][2] users[3] # [11,22,33,"老男孩"] users[3][-1] # "老男孩" users[3][-1][1] # '男' users[3] = 666
-
-
-
2元祖
-
元祖书写规范
users = [11,22,33,"老男孩"] # 列表(可变) users = (11,22,33,"老男孩") # 元组(不可变)
-
公共功能
-
索引(排除bool/int)
users = (11,22,33,"老男孩") print(users[0]) print(users[-1])
-
len
-
切片
-
步长
-
删除
-
修改
-
for/while
-
-
没用独有功能
-
特殊:元祖中的元素(儿子)不可以被修改/删除
# 示例一: v1 = (11,22,33) v1[1] = 999 # 错误 v1 = 999 # 正确 # 示例二:可以嵌套 v1 = (11,22,33,(44,55,66),(11,2,(99,88,),3)) # 示例三:嵌套 v2 = [11,22,33,(11,22,33)] v2[-1][1] = 99 # 错误 v2[-1] = 123 # 正确 # 示例四:嵌套 v3 = (11,[1,2,3],22,33) v3[1] = 666 # 错误 v3[1][2] = 123
总结
-
解释型语言和编译型区别以及列举你了解的语言?
-
字符串补充功能
- 独有
- startswith/endswith
- format
- encode
- join
- 公共
- 切片
- 索引
- len
- 步长(面试题)
- for循环
- range(0,10) # 帮助你生成一个数字列表 [0,1,2,3,4,5,6,7,8,9]
- 特性:
- 不可变,所以字符串元素不能删除和修改。
- 独有
-
git本地和远程要同步,以后只能操作本地然后提交。
-
列表(可变)
- 公共
- 索引
- 切片
- 步长
- 修改
- 删除 del
- for
- len
- 独有
- append
- insert
- pop
- remove
- clear
- 列表嵌套
- 公共
-
元组(不可变)
-
公共
- 索引
- 切片
- 步长
- for
- len
-
独有功能(无)
-
元组嵌套
v3 = (11,[1,2,3],22,33) v3[1] = 666 # 错误 v3[1][2] = 123
-
学习心得
- 列表步长表示【位置,位置,步长:开始的几步】
错误集
# 列表中追加元素"seven",并输出添加后的列表
li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
li.append("seven")
print(li) # 错误的思路 print(li.append("senven")
append 方法返回值是空
# 请将字符串 s = "qwert"的每一个元素添加到列表li中,一行代码实现,不允许循环添加。
# extend 方法实现
# 4.请用三种方法实现字符串反转name = "小黑半夜三点在被窝玩愤怒的小鸟"(步长、while、for)
name = "小黑半夜三点在被窝玩愤怒的小鸟"
# print(name[-1::-1])
# 更好的表达 print(name[::-1 ]
# 6.请用代码实现循环输出元素和值:users = ["武沛齐","景女神","肖大侠"] ,如:
'''
0 武沛齐
1 景女神
2 肖大侠
'''
users = ["武沛齐","景女神","肖大侠"]
# 我的思路
# count = 0
# for i in users:
# print(str(count)+' '+i)
# count += 1
# 关键是整数变成字符串
# 老师的思路
for i in range(0,len(users)):
print(i,users[i])
lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
# 在 "qwe"前面插入字符串:"火车头"
# lis.insert([3][0],"火车头")
# print(lis)
lis[3].insert(0,'火车头')
print(lis)
# 10.请用代码实现
# li = "alex"
# 利用下划线将列表的每一个元素拼接成字符串"a_l_e_x"
# li = "alex"
# new_li = ''
# for i in li:
# new_li += i+'_'
# print(new_li)
value = '_'.join(li)
# 11.利用for循环和range找出 0 ~ 100 以内所有的偶数,并追加到一个列表。
# lis = []
# for i in range(100):
# if i % 2 == 0:
# lis.append(i)
# print(lis)
lis = []
for i in range(0,101,2):
lis.append(i)
print(lis)
range的用法没有体会好!!
# 14.查找列表li中的元素,移除每个元素的空格,并找出以"a"开头,并添加到一个新列表中,最后循环打印这个新列表。
# li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", " aqc"]
# new_li =[]
# for i in li:
# i.strip() # i = i.strip()
# if i[0] == 'a': # starswith 方法忘了使用
# new_li.append(i)
# print(new_li)
字符串和列表的独特功能的区别,字符传不能改变所以要赋值新的,列表可以改变不需要赋值。
li = [1, 3, 2, "a", 4, "b", 5,"c"]
print(li[-1:0]) #错误的表达
默认步长为+1,如果倒着取必须指出步长。