目录
第一章:变量和简单数据类型
变量
1. 在Python里,变量可以直接定义。编译器会自动判别数据类型。比如:
message = "Hello world!"
print(message)
运行结果将会是:
Hello world!
2. 变量取名规则同C++
字符串
1. 字符串可用单引号或者双引号括起(二者皆可)。
"This is a string."
'This is also a string.'
2. 修改字符串中单词大小写
name = 'ada lovelace'
print(name.title())
运行结果是:
Ada Lovelace
其他几个类似的函数有:
- title 首字母大写
- upper 所有单词大写
- lower 所有单词小写
3. 在字符串中使用变量
first_name = 'ada'
last_name = 'lovelace'
full_name = f"{first_name} {last_name}"
print(full_name)
运行结果是:
ada lovelace
其中,f字符串中的f是format的简写。
f字符串还能完成很多任务,如
first_name = 'ada'
last_name = 'lovelace'
full_name = f"{first_name} {last_name}"
print(f"Hello, {full_name.title()}!")
运行结果是:
Hello, Ada Lovelace!
4. 删除空白
rstrip: 删除末尾空白
lstrip: 删除开头空白
strip: 删除两侧空白
数
1. 整数
用法同C++,可进行+ — * /四则运算。
整数中的下划线
书写较大的数时,可以用下划线给数字分组:
INF = 999_999_999_999
当打印这个数字时,会忽略下划线。
2. 浮点数
浮点数进行运算后得到的结果,小数位可能是不确定的。当然也有处理这种情况的方法。
任意两个数相除时,结果总是浮点数。
3. 同时给多个变量赋值
如:
x, y, z = 1, 2, 3
注释
在Python中,注释用#表示。
第二章:列表简介
什么是列表
在Python中,用方括号[]表示列表,并用逗号分隔其中的元素。如:
fruits = ['apple', 'banana', 'orange']
print(fruits)
运行结果是:
['apple', 'banana', 'orange']
即直接打印列表,将会把所有元素打印,包括方括号和引号。
1. 访问列表元素
若要打印第一个元素,可以写成:
print(fruits[0])
运行结果是:
apple
即列表类似于数组
,可以用中括号+序列的方式直接访问。
2. 索引用法
索引不仅可以是从0开始的自然数,也可以是负数。如-1就表示列表中最后一个元素。
print(fruits[-1])
运行结果是:
orange
修改、添加和删除元素
1. 修改列表元素
如要修改第一个元素,直接fruits[0] = 'lemon’
即可。
2. 添加元素
在末尾添加元素
使用append函数。用法如下:
fruits.append("watermelon")
即在末尾添加了元素watermelon。类似于vector容器。
在列表中插入元素
使用insert函数。用法如下:
fruits.insert(0, 'shit')
即在第一个位置插入了元素,其后所有元素往后移一格。
3. 从列表中删除元素
使用del语句
del fruits[0]
即删除第一个元素。前提是知道要删除元素的索引。
使用pop()函数
pop即弹出最后一个元素,且可以获得其值。
弹出任意位置的元素
只需要在pop()的括号中加上索引即可。如fruits.pop(0)
就是弹出fruits中的第一个元素。
根据值删除元素
Important
使用remove
函数。用法如fruits.remove(‘banana’),则让Python确定’banana’出现的位置,并删除它。
如果要利用remove的元素值,则需要提前定义一个变量保存其值再删除。
注意:
remove只能将目标值删除一次,如果要全部删除重复出现多次的元素,则需要多次循环使用。
组织列表
1. 使用sort()对列表永久排序
用法如:
fruits.sort()
则按照升序排列fruits。如果要按照降序排列,则需写成:
fruits.sort(reverse=True)
2. 使用sorted()对列表进行临时排序
用法如:
sorted(fruits)
此时fruits的值未改变,只是创建了一个临时变量列表sorted(fruits)。
3. 倒着打印列表
使用reverse函数:
fruits.reverse()
则使fruits列表中元素排列变为倒序。
4. 确定列表长度
使用函数len():
len(fruits)
第三章:操作列表
遍历整个列表
使用for循环来打印fruits中所有元素:
for fruit in fruits:
print(fruit)
注意:
打印会自动换行。
1. 深入研究循环
for temp in list:
注意记住这个冒号:
temp相当于list[i],i的值从0到len(list) - 1。
2. 在for循环中执行更多操作
有一个需要注意的地方就是,在python中没有中括号{},全靠缩进判断语句块。一个缩进 = 四个空格。
创建数值列表
1. 使用函数range()
如果要打印一系列数,可写成:
for value in range(1, 5)
print(value)
打印结果为:
1
2
3
4
可见range(1,5)表示1~4。相当于for (int i=1; i<5; i++)
也可以用一个数作为参数,如range(5),表示0~4。
2. 对数字列表进行简单计算
min(), max()函数即为求最小值与最大值。
sum()即为求数字列表元素值之和。
使用列表的一部分
1. 切片
使用方法如:
print(fruits[0:3])
表示只打印fruits前三个元素。
当第一个参数缺省时,则从第一个元素开始打印;当第二个参数缺省时,则打印到最后一个元素;都缺省时,则表示整个列表。
2. 遍历切片
用法如下:
for fruit in fruits[1:4]
3. 复制列表
直接用=赋值:
plants = fruits[:]
元组
元组中的元素是不可变的
。
1. 定义元组
dimensions = (200, 50)
print(dimensions[0])
print(dimensions[1])
打印结果是:
200
50
注意:
如果要定义一个只有一个元素的元组,必须含有一个逗号,如:
my_t = (3,)
即逗号才是元组本体。
2. 遍历元组中所有值
for dimension in dimensions:
print(dimension)
3. 修改元组变量
虽然不能修改元组中单一元素,但可以重新定义整个元组。
dimensions = (200, 50)
dimensions = (100, 100)
第四章:if语句
条件测试
1. 数值比较
用法同C++
,即相等是==,不相等是!=。大于、小于、大于等于、小于等于都相同。
2. 检查多个条件
使用and检查多个条件
Python中的and同C++中的&&
使用or检查多个条件
Python中的or同C++中的||
3. 检查特定值是否包含在列表中
fruits = ['apple', 'banana', 'orange']
'apple' in fruits
则会返回Ture。
4. 检查特定值是否不包含在列表中
fruits = ['apple', 'banana', 'orange']
if 'cat' not in fruits:
print('Yes')
则会打印Yes
5. 布尔表达式
就是bool型变量。
if语句
1. 简单的if语句
形式如下:
if condition:
do something
2. if-elif-else 语句
if condition1:
do something
elif condition2:
do something
else:
do something
第五章:字典
一个简单的字典
alien = {'color': 'green', 'point': 5}
print(alien['color'])
print(alien['point'])
打印结果为:
green
5
字典类似于C++中的结构体。
使用字典
在python中,字典是一系列键值对。键和值之间用冒号(:)分隔,而键值对之间用逗号分隔。
1. 访问字典中的值
name[key]
2. 添加键值对
直接定义键值对就可以添加,如:
alien = {'color': 'green', 'point': 5}
alien['x_pos'] = 10
aline['y_pos'] = 12
即在alien后面添加了两个键值对。
3. 创建一个空字典
{}是字典的本体,则定义一个空字典为:
aline = {}
4. 修改字典中的值
直接修改即可。
5. 删除键值对
使用del函数
alien = {'color': 'green', 'point': 5}
del alien['color']
即把alien[‘color’]删除。
6. 使用get()来访问值
alien = {'color': 'green', 'point': 5}
point_value = alien.get('point', 'No point value')
此可避免当point不存在时,程序报错。若point不存在,则会返回值’No point value’。
遍历字典
1. 遍历所有键值对
alien = {'color': 'green', 'point': 5}
for key, value in alien.items():
print(f"key: {key}\n value: {value}")
其中items()的作用是将字典类型转换为可遍历的元组。
2. 遍历所有键
alien = {'color': 'green', 'point': 5}
for key in alien.keys():
print(f"key: {key}")
3. 遍历所有值
alien = {'color': 'green', 'point': 5}
for value in alien.values():
print(f"value: {value}")
ps:
可以使用set()剔除重复项。如set(alien.values())。
嵌套
在列表中嵌套字典,在字典中嵌套列表,在字典中嵌套字典。也就是列表与字典的相互包含关系。
1. 字典列表
alien_0 = {'color':'green', 'point':5}
alien_1 = {'color':'yellow', 'point':10}
alien_2 = {'color':'red', 'point':15}
aliens = [alien_0, alien_1, alien_2]
for alien in aliens:
print(alien)
打印结果为:
{'color':'green', 'point':5}
{'color':'yellow', 'point':10}
{'color':'red', 'point':15}
即将三个字典alien_存储到aliens的列表中。当然,也可以用循环和append函数生成字典。
2. 在字典中存储列表
pizza = {
'crust': 'thick',
'toppings': ['mushrooms', 'extra cheese'], #列表
}
for topping in pizza['toppings']:
print("\t" + topping)
打印结果为:
mushrooms
extra cheese
3. 在字典中存储字典
在字典中嵌套字典,代码可能很快复杂起来。
users = {
'aeinstein': {
'first': 'albert',
'last': 'einstein',
'location': 'princeton',
},
'mcurie': {
'first': 'marie',
'last': 'curie',
'location': 'paris',
}, #注意不要忘记逗号!
}
for username, user_info in users.items():
print(f"\nUsername: {username}")
full_name = f"{user_info['first']} {user_info['lat']}"
location = user_info['location']
print(f"\tFull name: {full_name.title()}")
print(f"\tLocation: {location.title()}")
打印结果是:
Username: aeinstein
Full name: Albert Einstein
Loction: Princeton
Username: mcurie
Full name: Marie Curie
Loction: Paris
第六章:用户输入和while循环
函数input()的工作原理
message = input("Please put something: ")
print(message)
函数input()相当于cin。而且可以向input传入一个参数,成为向用户显示的提示(prompt)。
使用int()来获取数值输入
其实也就是input()获得的全是字符串类型,可以用message = int(message)
这种强制转换来获得整型变量。
while循环简介
1. 使用while循环
curNum = 1
while curNum <= 5: #冒号不要忘记
print(curNum)
cunNum += 1
打印结果自然为:
1
2
3
4
5
2. 让用户选择何时退出
提前设置一个退出值,只要用户输入的不是这个数,循环就继续运行。
message = ""
while message != 'quit':
message = input("Tell me sth and I will repeat it back to you:")
if message != 'quit':
print(message)
则该程序会重复用户所输入的数据,直到输入"quit",程序结束。
3. 使用标志
如果有多种情况导致while循环结束,要在一条while语句中检查所有这些条件,将复杂且困难。
在这种情况下,可定义一个变量,用于判断整个程序是否处于活动状态,这个变量称为标志(flag)。在flag为True时运行,为False时结束。
active = True
while active:
message = input()
if message == 'quit':
active = False
else:
print(message)
这么看好像标志就是很普通的一个用于判断的布尔型变量嘛= =?我还以为是刺激的新函数噢。
4. 使用break退出循环
在任何循环中都可以使用break语句。直接上代码:
while True:
message = input()
if message == 'quit':
break
else:
print(message)
5. 在循环中使用continue
continue即跳过循环体剩下的步骤,直接进行下次循环。
curNum = 0
while curNum < 10:
if curNum % 2 ==0:
continue
print(curNum)
程序目的是打印0~9范围类的奇数。
6. 避免无限循环
Ctrl+C,直接让程序升天。
使用while循环处理列表和字典
1. 在列表之间移动元素
unconfirmed_users = ['alice', 'brian', 'candace']
confirem_users = []
while unconfirmed_users:
current_user = unconfirmed_users.pop()
confirmed_users.append(current_user)
这种就是从一个列表中弹出最后一个元素,使用append函数放入另一列表中。直到第一个列表为空,第二个列表中的元素即为原列表中元素的倒序。
2. 删除为特定值的所有列表元素
前面介绍的remove函数,只能删除第一个出现在列表中的特定值。若要删除所有为特定值的元素,则可使用while循环。
pets = ['cat', 'dog', 'cat', 'cow', 'chicken', 'duck', 'cat']
while 'cat' in pets:
pets.remove('cat')
虽然好用,但是肉眼可见的Python运行速度有多慢……
3. 使用用户输入来填充字典
先用一个临时变量存储用户输入信息,再将其存储到字典中。
函数
定义函数
一个简单的打印信息函数代码如下:
def greet(): #不要忘了冒号!
print("Hello!")
greet()
关键字def是函数定义,用于向Python指出函数名。另外,记得以冒号结尾。
1. 向函数传递信息
def greet(username):
print(f"Hello, {username}!")
greet("Alice")
同C++,在定义函数的括号里加入参数。