Python编程:从入门到实践 学习笔记
[美] Eric Matthes
文章目录
1 搭建Python环境
选择Python3环境,pycharm作为Python文本编辑器:
环境:Python-3.8.10(3.9不支持Windows7系统)
编辑器:pycharm-community-2021.1.2
hello world代码:
print("Hello Python world!")
2 变量和简单数据类型
2.1 变量
在Python程序中可以随时修改变量的值,Python将始终记录变量的最新值:
hello world代码扩展:
#message为定义的一个变量
message="Hello Python world!"
print(message)
message="Hello Python Crash Course world!"
print(message)
运行结果:
#Python输出message的两次更新值
Hello Python world!
Hello Python Crash Course world!
2.1.1 变量的命名和使用
-
命名规则
包含 不包含 慎用 字母 可打头 空格 数字1(易看错为字母l) 数字 不可打头 Python关键字 数字0(易看错为字母o) 下划线 可打头 Python函数名
- Python中使用小写变量名较多
- 练习
-
简单消息:将一条消息存储到变量中,在将其打印出来。
i = "My first exercise." print(i)
-
多条简单消息:将一条消息存储到变量中,将其打印出来;再将变量的值修改为一条新消息,并将其打印出来。
i="My first exercise." print(i) i="No,this is my second exercise." print(i)
2.2 字符串
Python中,使用引号括起来的都是字符串,引号可以是单引号,也可以是双引号,还可以在双引号中包含单引号或单引号中包含双引号:
"This is a string."
'This is also a string.'
'I told my friend, "Python is my favorite language!"'
"The language 'Python' is named after Monty Python, not the snake."
- 正确使用单引号(’’)和撇号(’),单引号括起来的字符串中不能包含撇号,双引号("")括起来的字符串可以包含撇号
2.2.1 使用方法修改字符串的大小写
变量使用方法:变量.方法()
- title():以首字母大写的方式显式每个单词,即将每个单词的首字母改为大写。
- upper():将字符串中的字母全部改为大写。
- lower():将字符串中的字母全部改为小写。存储数据时很有用,无法根据现有信息判断正确的大小写形式时,全部存储为小写,需要显式时,再转换为合适的大小写方式。
name = "ada lovelace"
print(name.title())
print(name.upper())
print(name.lower())
运行结果:
Ada Lovelace
ADA LOVELACE
ada lovelace
2.2.2 合并(拼接)字符串
Python中,使用加号(+)来合并字符串,合并后的字符串可以存储在一个变量中[1]。或使用合并来创建消息,再把整条消息都存储在一个变量中[2]:
#[1]
first_name="ada"
last_name="lovelace"
full_name=first_name+" "+last_name
print("Hello,"+full_name.title()+"!")
#[2]
message="Good morning,"+full_name.title()+"!"
print(message)
运行结果:
Hello,Ada Lovelace!
Good morning,Ada Lovelace!
2.2.3 使用制表符或换行符来添加空白
Python编程中,空白泛指任何非打印字符,如空格、制表符和换行符。
符号 | 编程中的字符组合 |
---|---|
制表符 | \t |
换行符 | \n |
同时包含制表符和换行符 | \n\t |
2.2.4 删除空白
Python能够找到字符串开头和末尾多余的空白:
-
rstrip():去掉字符串末尾的多余空白。直接调用该方法只能暂时删除末尾多余空白,只有将删除操作的结果存回变量中,才能实现永久删除。
-
lstrip():去除字符串开头多余空白,需要将操作结果存储到变量中才能实现永久删除。
-
strip():去除两端多余空白,需要将操作结果存储到变量中才能实现永久删除。
2.2.5 Python2中的print语句
在Python2中,不需要将打印内容放在括号内。Python2中,有些print语句包含括号,有些不包含。
print"Hello Python2 world!"
2.3 数字
2.3.1 整数
在Python中,可直接对整数做加减乘除运算:
在Python中,使用两个乘号做乘方运算:
Python还支持运算次序,因此可在同一个表达式中使用多种运算,还可以使用括号来修改运算次序,让Python按指定的次序执行运算:
2.3.2 浮点数
在Python中,将带小数点的数字都成为浮点数,按照如整数的方式进行加减乘除即可,但计算后,结果中包含的小数位数可能是不确定的:
-
str():让Python将非字符串值表示为字符串,避免类型错误。
age=23 message="Happy "+str(age)+"rd Birthday!" print(message)
运行结果:
Happy 23rd Birthday!
2.4 注释
在Python中,使用井号(#)标识注释,井号后面的内容都会被Python解释器忽略,解释器忽略第一行,执行第二行。
3 列表简介
3.1 列表是什么
列表是由一系列按特定顺序排列的元素组成的,元素之间可以没有任何关系。在Python中,用方括号([])来表示列表,用逗号来分隔其中的元素。如何让Python将列表打印出来,Python将打印列表的内部,包括方括号。
bicycles=['trek','cannondale','redline']
print(bicycles)
运行结果:
['trek','cannondale','redline']
3.1.1 访问列表元素
列表是有序集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉Python即可。要访问列表元素,可指出列表的名称,再指出元素的索引,并将其放在方括号内,此时Python只返回元素,不包括方括号和引号。
-
在Python中,索引从0而不是1开始的,第一个列表元素的索引为0。
-
将索引指定为-1,可让Python返回最后一个列表元素。
bicycles=['trek','cannondale','redline','specialized'] print(bicycles) print(bicycles[1]) print(bicycles[1].title()) print(bicycles[3]) print(bicycles[-1].title())
运行结果:
['trek', 'cannondale', 'redline', 'specialized'] cannondale Cannondale specialized Specialized
-
索引-2返回倒数第二个列表元素,索引-3返回倒数第三个列表元素。
3.1.2 使用列表中的各个值
可像使用其他变量一样使用列表中的各个值,例如使用拼接根据列表中的值来创建消息。
bicycles=['trek','cannondale','redline','specialized']
message="My first bicycle was a "+bicycles[1].title()+"."
print(message)
运行结果:
My first bicycle was a Cannondale.
3.2 修改、添加和删除元素
3.2.1 修改列表元素
要修改列表元素,可指定列表名和要修改的元素索引,再指定该元素的新值。
motorcycles=['honda','yamaha','suzuki']
print(motorcycles)
motorcycles[1]='ducati'
print(motorcycles)
运行结果:
['honda', 'yamaha', 'suzuki']
['honda', 'ducati', 'suzuki']
3.2.2 在列表中添加元素
- 在列表末尾添加元素
-
append():在列表的末尾添加新元素,也可以用该方法动态地创建列表。
#1 motorcycles=['honda','yamaha','suzuki'] print(motorcycles) motorcycles.append('ducati') print(motorcycles) #2 bicycles=[] bicycles.append('trek') bicycles.append('cannondale') bicycles.append('redline') print(bicycles)
运行结果:
#1 ['honda', 'yamaha', 'suzuki'] ['honda', 'yamaha', 'suzuki', 'ducati'] #2 ['trek', 'cannondale', 'redline']
- 在列表中插入元素
-
insert():可以在列表中的任何位置添加新元素,需要指定新元素的索引和值。insert(索引,‘值’)
motorcycles=['honda','yamaha','suzuki'] print(motorcycles) motorcycles.insert(1,'ducati') print(motorcycles)
运行结果:
['honda', 'yamaha', 'suzuki'] ['honda', 'ducati', 'yamaha', 'suzuki']
3.2.3 从列表中删除元素
-
如果知道要删除的元素在列表中的位置,可使用del语句。
motorcycles=['honda','yamaha','suzuki'] print(motorcycles) del motorcycles[0] print(motorcycles)
运行结果:
['honda','yamaha','suzuki'] ['yamaha','suzuki']
-
使用方法pop()删除元素
pop()方法可删除列表末尾的元素,并可以接着使用它的值。列表就像一个栈,而删除列表末尾的元素相当于弹出栈顶的元素。
motorcycles=['honda','yamaha','suzuki'] print(motorcycles) popped_motorcycle=motorcycles.pop() print(motorcycles) print(popped_motorcycle)
运行结果:
['honda', 'yamaha', 'suzuki'] ['honda', 'yamaha'] suzuki
-
弹出列表中任何位置的处的元素
-
可以使用pop()来删除列表中任何位置的元素,需要在括号中指定要删除的元素索引。
motorcycles=['honda','yamaha','suzuki'] first_owned=motorcycles.pop(2) print('The first motorcycles I owned was a '+first_owned.title()+'.')
运行结果:
The first motorcycles I owned was a Suzuki.
-
使用pop()时,被弹出的元素就不在列表中了。
-
如果从列表中删除一个元素,且不再以任何方式使用该元素,使用del语句;如果在删除元素后需要继续使用它,则使用方法pop()。
-
根据值删除元素
使用方法remove()根据元素的值删除元素。
motorcycles=['honda','yamaha','suzuki','ducati'] print(motorcycles) motorcycles.remove('yamaha') print(motorcycles)
运行结果:
['honda', 'yamaha', 'suzuki', 'ducati'] ['honda', 'suzuki', 'ducati']
- 方法remove()只删除第一个指定值,如果要删除的值在列表中出现多次,则需要使用循环来判断是否删除了所有这样的值(第七章)。
3.3 组织列表
-
sort():对列表进行永久性排序,即排序后无法恢复原来顺序。
-
sort():按英文字母顺序排序。
-
sort(reverse=True):按英文字母顺序相反的顺序排序
motorcycles=['honda','yamaha','suzuki','ducati'] print(motorcycles) motorcycles.sort() print(motorcycles) motorcycles.sort(reverse=True) print(motorcycles)
运行结果:
['honda', 'yamaha', 'suzuki', 'ducati'] ['ducati', 'honda', 'suzuki', 'yamaha'] ['yamaha', 'suzuki', 'honda', 'ducati']
-
-
sorted():对列表进行临时排序,可以保留列表元素原来的排列顺序,同时以特定的顺序呈现。
cars = ['bmw', 'audi', 'toyota', 'subaru'] print("Here is the original list:") print(cars) print("\nHere is the sorted list:") print(sorted(cars)) print("\nHere is the original list again:") print(cars)
运行结果:
Here is the original list: ['bmw', 'audi', 'toyota', 'subaru'] Here is the sorted list: ['audi', 'bmw', 'subaru', 'toyota'] Here is the original list again: ['bmw', 'audi', 'toyota', 'subaru']
- sorted(列表名,reverse=True):保留元素原本顺序,按与英文字母顺序相反的顺序排序。
-
当不是所有元素的值都是小写时,排序的情况要更复杂。
-
reverse():反转列表元素的排序顺序,倒着打印列表。该方法永久性修改列表顺序,但再次调用即可恢复最初顺序。
cars = ['bmw', 'audi', 'toyota', 'subaru'] print(cars) cars.reverse() print(cars)
运行结果:
['bmw', 'audi', 'toyota', 'subaru'] ['subaru', 'toyota', 'audi', 'bmw']
-
len():确定列表的长度。
cars = ['bmw', 'audi', 'toyota', 'subaru'] print(cars) print(len(cars))
运行结果:
['bmw', 'audi', 'toyota', 'subaru'] 4
3.4 使用列表时避免索引错误
- 避免访问的索引溢出,可使用**列表名[-1]**的方式打印列表的最后一个元素。当列表为空时,这种访问方式才会导致错误。
- 当出现索引错误时,尝试打印出全部列表或使用len()方法打印出列表长度。