目录
学习目标:
- 一周掌握 python 入门知识
学习内容:
基础数据类型:
数据结构 | 是否可变 | 是否重复 | 是否有序 | 定义符号 |
---|---|---|---|---|
列表(list) | 可变 | 可重复 | 有序 | [ ] |
元组(tuple) | 不可变 | 可重复 | 有序 | ( ) |
字典(dict) | 可变 | 可重复 | 无序 | {key:value} |
集合(set) | 可变 | 不可重复 | 无序 | { } |
字符串:
字符串方法:
Test1:
1.字符串中指定字符串段替换:replace( )
string = "my name is unknown"
string = string.replace('unknown','ikun')
print(string)
my name is ikun
2.字符串切分,根据符号切分字符串 :split( )
string = "AaBaCaDaEaF"
print(string.split(' '))
print(string.split())
print(string.split('a'))
print(string.split('a', 2))
print(string.split('a', 3))
['AaBaCaDaEaF']
['AaBaCaDaEaF']
['A', 'B', 'C', 'D', 'E', 'F']
['A', 'B', 'CaDaEaF']
['A', 'B', 'C', 'DaEaF']
Test03: lower( ):返回将字符串中所有大写字符转换为小写后生成的字符串。
Test04: upper( ):返回小写字母转为大写字母的字符串。
Test05: capitalize( ):将字符串的第一个字母变成大写,其余字母变为小写
str1 = "i Love python"
str2 = " i Love python" #字母i前有空格
str3 = "I Love python"
print(str1.capitalize())
print(str2.capitalize())
print(str3.capitalize())
I love python
i love python
I love python
Test06: count( ):该方法返回子字符串在字符串中出现的次数。
语法:str.count(sub, start= 0,end=len(string))
str = "this is string example....wow!!!"
sub = "i"
print("str.count(sub, 4, 40) : ", str.count(sub, 4, 40))
sub = "wow"
print("str.count(sub) : ", str.count(sub))
str.count(sub, 4, 40) : 2
str.count(sub) : 1
Test07: startswith( ):Python startswith() 方法用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。如果参数 beg 和 end 指定值,则在指定范围内检查。
语法:str.startswith(str, beg=0, end=len(string))
Test08: endswith( ):判断字符串是否以指定字符或子字符串结尾。
语法:str.endswith("suffix", start, end)
#元组案例
file = "python.txt"
if file.endswith("txt"):
print("该文件是文本文件")
elif file.endswith(("AVI","WMV","RM")):
print("该文件为视频文件")
else:
print("文件格式未知")
Test09: splitlines( ):按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
str1 = 'ab c\n\nde fg\rkl\r\n'
print str1.splitlines();
str2 = 'ab c\n\nde fg\rkl\r\n'
print str2.splitlines(True)
['ab c', '', 'de fg', 'kl']
['ab c\n', '\n', 'de fg\r', 'kl\r\n']
Test10: strip( ):用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
lstrip( )/rstrip( ):仅删除左/右
str = "123abcrunoob31221"
print (str.strip( '12' )) # 字符序列为 12
3abcrunoob3
字符串拼接:
Test2:将两字符串拼接,两种方法
1. 直接通过(+)操作符拼接
s = 'Hello'+' '+'World'+'!'
print(s)
Hello World!
2.直接拼接
"let's say " '"hello world!"'
'let\'s say "hello world!"'
字符串转义:
Test3: "\n","\r","\t"
"\n" 换行
>>> print('Hello, \nworld!')
Hello,
world!
"\r" 将光标移到一行的开始,覆盖
>>> print('Hello, \rworld!')
world!
"\t" 制表符
>>> print('Hello, \tworld!')
Hello, world!
#打印结果中间隔了一个制表符
格式化添加:
Test01: join( )用于将序列中的元素以指定的字符连接生成一个新的字符串。
symbol = "-";
seq = ("a", "b", "c"); # 字符串序列
print symbol.join( seq );
#输出
a-b-c
标准输出:
Test02: format( )一种格式化字符串的函数,增强了字符串格式化的功能。
基本语法是通过 {} 和 : 来代替以前的 % 。
>>> "{} {}".format("hello", "world") # 不设置指定位置,按默认顺序
'hello world'
>>> "{0} {1}".format("hello", "world") # 设置指定位置
'hello world'
>>> "{1} {0} {1}".format("hello", "world") # 设置指定位置
'world hello world'
# 通过字典设置参数
site = {"name": "张三", "age": "20"}
print("名字:{name}, 年龄 {age}".format(**site))
# 通过列表索引设置参数
my_list = ['张三', '20']
print("名字:{0[0]}, 年龄 {0[1]}".format(my_list)) # "0" 是必须的
#输出
名字:张三, 年龄 20
名字:张三, 年龄 20
列表:
列表拼接:
Test4: 列表拼接方法
- 最简单的使用“+”;
- 最意想不到的使用切片赋值的方法;
>>> list1 = [1, 2, 3]
>>> list2 = [4, 5, 6]
>>> id(list1)
2923688410176
>>> list1[len(list1):len(list1)] = list2
>>> list1
[1, 2, 3, 4, 5, 6]
>>> id(list1)
2923688410176
- 使用列表自带的extend方法
- += 效果与extend()一样,向原列表追加一个新元素,在原有列表上增加
列表方法:
Test5: 列表填充方法 (append和extend区别)
lst1 = ['a', 'b', 'c']
lst2 = ['d', 'e', 'f']
lst3 = ['a', 'b', 'c']
lst1.append(lst2)
lst3.extend(lst2)
print("append方法:{0}\nextend方法:{1}".format(lst1, lst3))
#结果
append方法:['a', 'b', 'c', ['d', 'e', 'f']]
extend方法:['a', 'b', 'c', 'd', 'e', 'f']
Test6: 列表删除元素方法 (pop()和remove()区别)
list1 = [1, 3, 6, 7, 8]
print('remove返回值:', list1.remove(3)) # 对列表元素进行搜索删除,而不是下表
print('处理结果:', list1)
list2 = [1, 3, 6, 7, 8]
print('pop返回值:', list2.pop(3)) # 对列表下表进行检索删除
print('处理结果:', list2)
dict1 = {'Abby': 21, 'Bob': 22, 'cindy': 21}
print('pop字典返回值:', dict1.pop('Bob'))
print('处理结果:', dict1)
#结果
remove返回值: None
处理结果: [1, 6, 7, 8]
pop返回值: 7
处理结果: [1, 3, 6, 8]
pop字典返回值: 22
处理结果: {'Abby': 21, 'cindy': 21}
Test8: 列表求长 len( )/for循环…不做赘述
Test9: 列表去重 利用set+索引,最简单顺序不变方法
Test012: 列表排序 sort( )/sorted()
lst1 = [2, 5, 8, 9, 6, 7, 1]
print('sorted方法:\t', sorted(lst1))
lst1.sort()
print('sort方法:\t', lst1)
#结果
sorted方法: [1, 2, 5, 6, 7, 8, 9]
sort方法: [1, 2, 5, 6, 7, 8, 9]
sorted(list)返回一个对象,可以用作表达式。原来的list不变,生成一个新的排好序的list对象。list.sort() 不会返回对象,改变原有的list。
Test013: 列表切片 利用下标索引对列表单元进行访问修改
alist = [3, 4, 6, 7, 2, 10, 16, -8]
alist_x = alist[1:6:2]
print(alist_x)
# 输出结果:[4, 7, 10]
alist[1:6:2] = [28, 38, 48] # 修改元素值
print(alist)
# 输出结果:[3, 28, 6, 38, 2, 48, 16, -8]
Test014: list在循环遍历中,删除指定数据项
a = [1,2,3,4,5,6,7,8]
print(id(a))
print(id(a[:]))
for i in a[:]:
if i>5:
pass
else:
a.remove(i)
print(a)
print('-------------------------')
print(id(a))
#结果
2079029867328
2079029867072
[2, 3, 4, 5, 6, 7, 8]
[3, 4, 5, 6, 7, 8]
[4, 5, 6, 7, 8]
[5, 6, 7, 8]
[6, 7, 8]
[6, 7, 8]
[6, 7, 8]
[6, 7, 8]
-------------------------
2079029867328
一个比较有意思的情况,讲了遍历列表时删除元素的正确做法。
字典:
字典方法:
Test10: setdefault()、get() 方法
dict1 = {'name': '张三', 'age': 18}
print(dict1.get('name'))
# 使用get()函数 birthday是不存在于字典中的键
print(dict1.get('birthday'))
# 使用setdefault()函数 键’name‘存在于字典中的情况
dictAdd = dict1.setdefault('name', 'unknown')
print(dictAdd)
print(dict1)
# 使用setdefault()函数 键’birthday‘不存在于字典中的情况
dictAdd2 = dict1.setdefault('birthday', '2023年7月11日')
print(dictAdd2)
print(dict1)
#结果
张三
None
张三
{'name': '张三', 'age': 18}
2023年7月11日
{'name': '张三', 'age': 18, 'birthday': '2023年7月11日'}
Test015: keys()、values() 和 items() 方法
a = {'数学': 95, '语文': 89, '英语': 90}
print(a.keys()) # 以列表返回一个字典所有的键
print(a.values()) # 以列表返回一个字典所有的值
print(a.items()) # 以列表返回可遍历的(键, 值) 元组数组
#结果
dict_keys(['数学', '语文', '英语'])
dict_values([95, 89, 90])
dict_items([('数学', 95), ('语文', 89), ('英语', 90)])
Test016: update() 方法
dict1 = {'Name': 'Zara', 'Age': 7}
dict2 = {'Sex': 'female'}
#把字典 dict2 的键/值对更新到 dict1 里
dict1.update(dict2)
print("Value : %s" % dict1)
#结果
Value : {'Name': 'Zara', 'Age': 7, 'Sex': 'female'}
Test017: pop() 和 popitem() 方法:
# Pop方法属于字典自带的方法,只需要传入一个参数,这个参数是字典的键,就可以对字典中的某个键值对进行删除。
dic1 = {"a": "C", "b": "Python", "c": "RPA", "d": "艺赛旗"}
dic1.pop("c")
print("dic1:", dic1)
# 这个方法不需要传入参数,就可以直接对字典中的键值对进行删除,并且每次删除的都是最后一个。
dic2 = {"a": "C", "b": "Python", "c": "RPA", "d": "艺赛旗"}
dic2.popitem()
print('dic2:', dic2)
#结果
dic1: {'a': 'C', 'b': 'Python', 'd': '艺赛旗'}
dic2: {'a': 'C', 'b': 'Python', 'c': 'RPA'}
Test018: copy(),copy.deepcopy() 方法
import copy
dict1 = {'user': 'runoob', 'num': [1, 2, 3]}
dict2 = dict1 # 浅拷贝: 引用对象
dict3 = dict1.copy() # 浅拷贝:深拷贝父对象(一级目录),子对象(二级目录)不拷贝,还是引用
dict4 = copy.deepcopy(dict1) # 深拷贝:全部深拷贝
# 修改 data 数据
dict1['user'] = 'root'
dict1['num'].remove(1)
print(dict1)
print(dict2)
print(dict3)
print(dict4)
# 结果
{'user': 'root', 'num': [2, 3]}
{'user': 'root', 'num': [2, 3]}
{'user': 'runoob', 'num': [2, 3]}
{'user': 'runoob', 'num': [1, 2, 3]}
学习时间:
学习产出:
- 学习笔记
- CSDN 技术博客 1 篇
本文仅用于学习笔记
参考资料:《Python语言及其应用》 菜鸟教程Python
如有侵权请联系删除