python语法笔记一——变量


《python编程 从入门到实践》(Eric Matthes)读书笔记 2020.8
语法基于python3


变量

变量名

变量名只能包含字母、数字和下划线,不能以数字打头,不能包含空格(以下划线替代),不能使用python保留的关键字和函数名(如print)。
变量名应既简短又具有描述性,慎用小写字母l和大写字母O。

字符串

用引号括起的是字符串,可以是单引号也可以是双引号。

显示方法

仅按指定方法显示,未修改字符串的值。

name = "ada lovelace"
# 以首字母大写方式显示
print(name.title())# 全部大写显示
print(name.upper())# 全部小写显示
print(name.lower())
合并字符串

直接使用加号(+)拼接

first_name = "ada"
last_name = "lovelace"
full_name = first_name + " " + last_name
空白

添加制表符:\t;添加换行符:\n。
删除空白方法(不存回变量中的话仅显示删除,实际未删除):

# 终端运行示例
>>> language = '  python  '
>>> language
'  python  '
>>> language.rstrip() 
'  python'
>>> language
'  python  '
>>> language = language.rstrip()
>>> language
'  python'# 删除行尾空白
language = language.rstrip()# 删除行首空白
language = language.lstrip()# 同时删除两端的空白
language = language.strip()
字符串格式化

格式化符号类似c,字符串与值(可以是变量或常量)之间用%连接。不止一个值时用小括号括起,值与值之间用逗号隔开。
%c:字符及ASCII码;%d:整数;%s:字符串,%f:浮点数。

for i in range(1, 11):
    name = "right%d.jpg" % i
    
print ("My name is %s and weight is %d kg!" % ('Zara', 21))

数字

整数

加(+),减(-),乘(*),除( / ),乘方(**),可使用括号改变优先级。空格不影响python计算表达式的方式。
注:python3整数除法根据结果可以得到小数,python2只得到商(整数),抛弃余数。

浮点数

浮点数包含的小数位数可能是不确定的,如

>>> 0.2 + 0.1
0.30000000000000004
>>> 3 * 0.1
0.30000000000000004
数值转化为字符串:str()

str():将非字符串值表示为字符串。直接将整数和字符串拼接会产生类型错误。

age = 23
message = "Happy " + str(age) + "rd Birthday!"

列表

列表由一系列按特定顺序排列的元素组成。用方括号([ ])表示列表,并用逗号分隔其中的元素。

>>> bicycle = ['trek','canondale','redline','specialized']
访问列表元素

指出列表名称,将元素索引放在方括号内。

>>> print(bicycle[0])
trek

正向索引从0开始,负向索引从-1开始(索引指定为-1,返回最后一个元素,-2、-3以此类推)。

修改列表元素

指定列表名、索引和新值。

motorcycles = ['honda','yamaha','suzuki']
motorcycles[0] = 'ducati'
向列表中添加元素

append()方法:在列表末尾添加元素。
上一示例中创建的列表也可按如下方法动态创建。

motorbycles = []
motorbycles.append('honda')
motorbycles.append('yamaha')
motorbycles.append('suzuki')
向列表中插入元素

insert()方法:指定新元素的索引和值,插入元素。

>>> motorcycles = ['honda','yamaha','suzuki']
>>> motorcycles.insert(0,'ducati')
>>> print(motorcycles)
['ducati','honda','yamaha','suzuki']
从列表中删除元素

del语句:根据位置删除元素。

>>> motorcycles = ['honda','yamaha','suzuki']
>>> del motorcycles[0]
>>> print(motorcycles)
['yamaha','suzuki']

pop()方法:弹出列表中的元素。参数为空时默认弹出列表末尾的元素,参数不为空时为弹出元素的索引,e.g.motorcycles.pop(0)弹出列表的第一个元素。

>>> motorcycles = ['honda','yamaha','suzuki']
>>> popped_motorcycle = motorcycles.pop()
>>> print(mortorcycles)
['honda','yamaha']
>>> print(popped_motorcycle)
suzukire

move()方法:根据值删除元素。

>>> motorcycles = ['honda','yamaha','suzuki','ducati']
>>> motorcycles.remove('ducati')
>>> print(mortorcycles)
['honda','yamaha','suzuki']

注意:方法remove()只删除第一个指定的值,如果要删除的值可能在列表中出现多次,需要使用循环来判断是否删除了所有这样的值。

对列表排序

sort()方法:对列表进行永久性排序。

# 假设列表中所有元素都是小写
>>> cars = ['bmw','audi','toyota','subaru']
>>> cars.sort()
>>> print(cars)
['audi','bmw','subaru','toyota']

按相反顺序排列元素:传递参数reverse=True

>>> arr = [3, 8, 2, 9, 6, 5, 3]
>>> arr.sort(reverse=True)
>>> print(arr)
[9, 8, 6, 5, 3, 3, 2]

sorted()方法:对列表进行临时排序。保留列表原来的排列顺序,只是以特定的顺序呈现。降序也可指定参数reverse=True

翻转列表

reverse()方法:反转列表元素的排列顺序。永久性地修改列表元素,但可通过再次调用reverse()随时恢复。

获取列表长度

len()方法:快速获得列表长度。python计算列表长度从1开始。

>>> cars = ['bmw','audi','toyota','subaru']
>>> len(cars)
4
使用for循环遍历列表
magicians = ['alice','david','carolina']
for magician in magicians:
    print(magician)
    
# 输出:
alice
david
carolina

for语句末记得加冒号。

数字列表

range()方法:生成一系列数字。从指定的第一个值开始,在到达指定的第二个值后停止(不包含第二个数)。

# 只输出1-4
for value in range(1,5):
    print(value)

list()方法:直接将range()的结果转换为列表。

>>> numbers = list(range(1,6))
>>> print(numbers)
[1, 2, 3, 4, 5]

range()可以传入第三个参数指定步长。

>>> even_numbers = list(range(2,11,2))
>>> print(even_numbers)
[2, 4, 6, 8, 10]

max()/min()/sum()方法:求出数字列表的最大值/最小值/总和。

>>> digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
>>> max(digits)
9
>>> min(digits)
0
>>> sum(digits)
45
列表解析
>>> square = [value**2 for valua in range(1,11)]
>>> print(squares)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
切片

处理列表的部分元素称为切片。
创建切片:指定要是用的第一个元素的索引和最后一个元素的索引加一。与range()一样,python在到达指定的第二个索引前面的元素后停止。起始索引和终止索引间用冒号(:)连接。
如果没有指定第一个索引,将自动从列表开头开始;没有指定终止索引,切片将终止于列表末尾。

# 获取列表最后两个元素
>>> players = ['charles','martina','michael','eli']
>>> print(players[-2:])
['micheal','eli']

在for循环中使用切片可以遍历切片。
通过省略起始索引和终止的切片可以复制列表。复制列表将得到两个列表,直接用“=”赋值只是将第二个变量名指向同一个列表。

my_food = ['pizza','falafel','carrot cake']# 复制列表
friend_food = my_food[:]# 两个变量名指向同一个列表
friend_food = my_food
元组

值不能修改的列表称为元组。元组类似列表,使用圆括号而不是方括号。
访问和遍历元组的操作与列表相同。不能修改元组的元素,但可以给存储元组的变量赋值。如果要修改元组元素,即重新定义整个元组。
元组是比列表更简单的数据结构,如果需要存储的一组值在程序的整个生命周期内都不可变,可使用元组。

字典

字典是放在花括号{}中的一系列键-值对,键和值之间用冒号分隔,键-值对之间用逗号分隔。

alien_0 = {'color':'green','points':5}# 多行字典
favorite_languages = {
    'jen': 'python',
    'sarah': 'c',
    'edward': 'ruby',
    'phil': 'python',
}
访问字典中的值

获取与键相关联的值,可依次指定字典名和放在方括号内的键。

>>> print(alien_0['color'])
green
添加键-值对

字典是一种动态结构,可依次指定字典名、用方括号括起的值和相关联的值添加键-值对。

alien_0 = {'color': 'green', 'points': 5}
pass
alien_0['x_position'] = 0
alien_0['y_position'] = 25
print(alien_0)# 输出
{'color':'green','points':5,'x_position':0,'y_position':25}

注:直接将定义和赋值代码写为一个file会提示“This dictionary creation could be rewritten as a dictionary literal ”,在定义字典之后立刻添加新值会提示你可以在定义时直接写入字典,不想看到这个提示就在定义和添加新值之间加个pass。
键-值对的排列顺序可能与添加顺序不同。字典不关心键-值对的添加顺序,而只关心键和值之间的对应关系。不确定键-值对的值时可用空大括号代表值暂为空。

定义空字典

使用字典来存储用户提供的数据或在编写能自动生成大量键-值对的代码时,通常都需要先定义一个空字典。

# 定义空字典的两种方法
alien_0 = {}
alien_0 = dict()
修改字典中的值

依次指定字典名、用方括号括起的键以及与键相关的新值。

alien_0 = {'color':'green'}
alien_0['color'] = 'yellow'
删除键-值对

del语句:指定字典名和要删除的键。

alien_0 = {'color': 'green', 'points': 5}
del alien_0['points']
遍历字典

items()方法:遍历所有键-值对。

user_0 = {
    'username': 'efermi',
    'first': 'enrico',
    'last': 'fermi',
}for key,value in user_0.items():
    print("\nKey: " + key)
    print("Value: " + value)
    
# 输出:
​
Key: username
Value: efermi
​
Key: first
Value: enrico
​
Key: last
Value: fermi

keys()方法:遍历字典中的所有键。遍历字典时会默认遍历所有键。

favorite_languages = {
    'jen': 'python',
    'sarah': 'c',
    'edward': 'ruby',
    'phil': 'python',
}
# 以下两种写法等效
for name in favorite_languages.keys():
    passfor name in favorite_languages:
    pass# key()方法返回一个列表
if 'erin' not in favorite_languages,key():
    print("Erin, please take our poll!")
    
# 按顺序遍历字典中的所有键
for name in sorted(favorite_languages.key()):
    pass

values()方法:遍历字典中的所有值,返回一个值列表。

# 为剔除重复项,可以使用集合
print("The following languages have been mentioned:")
for language in set(favorite_languages.values()):
    print(language.title())

将字典存储在列表中,或将列表存储在字典中,称为嵌套。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值