欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

荐 「「 Python从入门到实践 」」学习笔记(连载中)

程序员文章站 2023-09-17 21:55:48
个人知识备忘...

基础篇

字符串


字符串连接用 ’ + ’ ,但是不像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