荐 「「 Python从入门到实践 」」学习笔记(连载中)
基础篇
字符串
字符串连接用 ’ + ’ ,但是不像java,python只能进行字符串的拼接。
字符串方法title()
首字母大写,其他小写
message = "EE E EEE"
print(message.title())
Ee E Eee
str()
将数字转化为字符串以便于字符串拼接
列表
创建数字列表
digit = list(range(1,11)) # range函数,生成数字子集
print(max(digit) )
'''
# range(1,11)生成 1 - 10的数字
list() 将其列表化
'''
列表解析
squares = [value**2 for value in range(1,11)] # 结尾无':'
print(squares)
要使用这种语法,首先指定一个描述性的列表名,如squares ;然后在方括号内,先定义一个表达式,用于生成你要存储到列表中的值。然后编写一个for循环,用于给表达式提供值
切片
处理列表的部分元素,Python称之为切片
创建一个切片,可指定要使用的一个元素和最后一个元素的索引。
如果没有指定第一个索引就自动从头开始(下标0),没有指定最后一个位置,则默认会到列表最后。
players = ['cahrr','mrtarf','micha','flower','eli']
print(players[0:3])
# ['cahrr', 'mrtarf', 'micha']
遍历切片
切片的返回值似乎还是列表。
players = ['cahrr','mrtarf','micha','flower','eli']
players_tmp = players[0:3]
print(players_tmp)
# ['cahrr', 'mrtarf', 'micha']
可在for循环中使用切片
players = ['cahrr','mrtarf','micha','flower','eli']
for player in players[1:3]:
print(player)
'''
mrtarf
micha
'''
复制列表
players = ['cahrr','mrtarf','micha','flower','eli']
players_copy = players[:]# 产生一个副本
print(players_copy)
# ['cahrr', 'mrtarf', 'micha', 'flower', 'eli']
判断特定值是否在列表
nums = [123,12,1,0]
if 123 in nums:
print("Have")
else:
print("No have")
nums = [123,12,1,0]
if 1234 not in nums:
print("Yes")
else:
print("no")
判断列表是否为空
cars = []
if cars:
print("not NUll")
else:
print("Null")
列表集合化方法set()去重
cars = [1,2,3,1,2,1,5]
print(cars)
unique_cars = set(cars)
print(unique_cars)
# [1, 2, 3, 1, 2, 1, 5]
# {1, 2, 3, 5}
返回列表的长度
cars = [1,2,3,1,2,1,5]
print(len(cars))
# 7
元组
列表非常适合用于存储在程序运行期间可能变化的数据集。课表是可以修改的,这对处理网站的用户列表或者游戏中的角色列表至关重要,有时候你需要一些列不可修改的元素,元组可以满足这中要求。Python将不能修改的值成为`不可变的`2,而不可变的列表被称为元组。
定义元组
dio = (200,300)
print(dio[0])
print(dio[1])
#200
#300
尝试修改会报错
dio = (200,300)
print(dio[0])
dio[0] = 2
print(dio[0])
# TypeError: 'tuple' object does not support item assignment
遍历元组
dio = (200,300)
for d in dio:
print(d)
注:虽然不能更新元组中的元组,但是可以变换元组变量,就比如房间里的东西不能改变,但是我们可以换一个房间
判断一个值是否在元组中
nums = (123,12,1,0)
if 123 in nums:
print("Have")
else:
print("No have")
nums = (123,12,1,0)
if 1234 not in nums:
print("Yes")
else:
print("no")
设置代码格式
如果一定要在让代码易于编程 和 易于阅读之间选择,Python 程序员几乎总是会选择后者
缩进
每级缩进都是用四个空格,这既可以提高可读性,又留下足够的多级缩进空间。
行长
代码行与注释行
空行
要将程序的不同部分分开,可使用空行。
if语句
例子
cars = ['auti','bmw','dusdds','ttoe']
for car in cars:
if car == 'bmw':
print(car.upper())
else:
print(car.lower())
print(True)
print(False)
if 2 != 3:
print(True)
else:
print(False)
if 4 >= 2 and 4 <= 5:
print(True)
else:
print(False)
if嵌套
x = 10
if x >= 80:
print("good")
elif x >= 60:
print("nice")
else:
print("terrible")
设置if的格式
PEP 8 提供唯一的建议是,在诸如 == ,>=,<= 等比较运算符两边各加一个空格,列如 if age < 4: 比 if age<4:要更易阅读
字典
例子
a = {'color':'red','point':3}
print(a['color'])
print(a['point'])
#red
#3
创建空字典
a = {}
a[3] = 4
print(a)
#{3: 4}
使用字典
在Python中,字典是一系列键值对。每个键都与一个值相关联,你可以用键来访问与之相关联的值,与键相关联的值可以是数字,字符串,列表乃至字典。
添加键值对
a = {'color':'red','point':3}
a[3] = 3
print(a)
# {'color': 'red', 'point': 3, 3: 3}
删除键值对
a = {}
a[3] = 4
a['red '] = 3;
a['red'] = 'bl'
print(a)
del a['red']
print(a)
# {3: 4, 'red ': 3, 'red': 'bl'}
# {3: 4, 'red ': 3}
遍历字典
user_0 = {
'uesr' : 'eferr',
'first' : 'efdf',
'last' : 'efef'
}
for key,value in user_0.items(): # items() 返回一个键值对列表
print('Key: ' + key);
print('Value
'''
Key: uesr
Value: eferr
Key: first
Value: efdf
Key: last
Value: efef
'''
遍历字典中所有的键
在不需要字典中的值的时候,方法keys()很有用。
user_0 = {
'uesr' : 'eferr',
'first' : 'efdf',
'last' : 'efef',
}
for key in user_0.keys(): # 返回一个列表
print('Key: ' + key);
'''
Key: uesr
Key: first
Key: last
'''
遍历字典中所有的值
如果你感兴趣的主要是字典中包含的值,可使用values()方法,它返回一个值列表。
嵌套
有时候,需要将一系列字典储存在列表中,或将列表作为值储存在字典中,这称为嵌套
。
字典列表
aline_0 = {'color':'green','point':5}
aline_1 = {'color':'yellow','points':10}
aline_3 = {'color':'red','points':33}
alines = [aline_0,aline_1,aline_3]
for aline in alines:
print(aline)
# {'color': 'green', 'point': 5}
# {'color': 'yellow', 'points': 10}
# {'color': 'red', 'points': 33}
在字典中存储列表
pizza = {
'crust' : 'thick',
'toppings' : ['mush','etxe'],
}
for topping in pizza['toppings']:
print(topping)
# mush
# etxe
favorite_languages = {
'jen' : ['python','ruby'],
'sarah' : ['c'],
'eded' : ['ruby','eee'],
}
for name,languages in favorite_languages.items():
print(name + ": ")
for language in languages:
print(" "+language)
'''
jen:
python
ruby
sarah:
c
eded:
ruby
eee
'''
在字典中存储字典
users = {
'aeinstein' : {
'first' : 'albert',
'last' : 'eeee',
'location' : 'princeton',
},
'brfer': {
'first': 'rere',
'last': 'erer',
'location': 'prrere',
},
}
for userName,user_info in users.items():
print(userName + ": ")
full_Name = user_info['first'] + user_info['last']
location = user_info['location']
print(" " + full_Name)
print(" " + location.title())
'''
aeinstein:
alberteeee
Princeton
brfer:
rereerer
Prrere
'''
集合
集合(set)是一个无序的不重复元素序列。
创建一个集合
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典
。
>>>basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
>>> print(basket) # 这里演示的是去重功能
{'orange', 'banana', 'pear', 'apple'}
>>> 'orange' in basket # 快速判断元素是否在集合内
True
>>> 'crabgrass' in basket
False
>>> # 下面展示两个集合间的运算.
...
>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a
{'a', 'r', 'b', 'c', 'd'}
>>> a - b # 集合a中包含而集合b中不包含的元素
{'r', 'd', 'b'}
>>> a | b # 集合a或b中包含的所有元素
{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
>>> a & b # 集合a和b中都包含了的元素
{'a', 'c'}
>>> a ^ b # 不同时包含于a和b的元素
{'r', 'd', 'b', 'm', 'z', 'l'}
类似列表推导式,同样集合支持集合推导式(Set comprehension):
>>>a = {x for x in 'abracadabra' if x not in 'abc'}
>>> a
{'r', 'd'}
集合的基本操作
1、添加元素s.add( x )
将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。
>>>thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.add("Facebook")
>>> print(thisset)
{'Taobao', 'Facebook', 'Google', 'Runoob'}
有一个方法,也可以添加元素,且参数可以是列表,元组,字典等,语法格式如下s.update( x )
>>>thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.update({1,3})
>>> print(thisset)
{1, 3, 'Google', 'Taobao', 'Runoob'}
>>> thisset.update([1,4],[5,6])
>>> print(thisset)
{1, 3, 4, 5, 6, 'Google', 'Taobao', 'Runoob'}
>>>
a = set(('wwrarerera','wwrwe','ewew'))
print(a)
a.update({33})
print(a)
# {'ewew', 'wwrarerera', 'wwrwe'}
# {33, 'ewew', 'wwrarerera', 'wwrwe'}
2、移除元素
语法格式如下:
s.remove( x )
将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误
。
>>>thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.remove("Taobao")
>>> print(thisset)
{'Google', 'Runoob'}
>>> thisset.remove("Facebook") # 不存在会发生错误
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'Facebook'
>>>
此外还有一个方法也是移除集合中的元素,且如果元素不存在,不会发生错误
。格式如下所示:s.discard( x )
>>>thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.discard("Facebook") # 不存在不会发生错误
>>> print(thisset)
{'Taobao', 'Google', 'Runoob'}
我们也可以设置随机删除集合中的一个元素,语法格式如下:
s.pop()
多次执行测试结果都不一样。
set 集合的 pop 方法会对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除。
3、计算集合元素个数
语法格式如下:
len(s)
4、清空集合
语法格式如下:
s.clear()
5、判断元素是否在集合中存在
语法格式如下:
x in s
1、对于 python 中列表 list、tuple 类型中的元素,转换集合是,会去掉重复的元素如下:
>>> list = [1,1,2,3,4,5,3,1,4,6,5]
>>> set(list)
{1, 2, 3, 4, 5, 6}
>>> tuple = (2,3,5,6,3,5,2,5)
>>> set(tuple)
{2, 3, 5, 6}
2、集合对 list 和 tuple 具有排序(升序),举例如下:
>>> set([9,4,5,2,6,7,1,8])
{1, 2, 4, 5, 6, 7, 8, 9}
>>> set([9,4,5,2,6,7,1,8])
{1, 2, 4, 5, 6, 7, 8, 9}
本文地址:https://blog.csdn.net/qq_43408238/article/details/107094540