列表(list)
列表非常适合用于存储在程序运行期间可能变化的数据集。
- 基础操作:
list = [ ]
append('hello')
insert(0,'hello')
del list[0]
list.pop()
//pop出最后一个元素
list.remove('hello')
list.sort()
//永久性排序
list.sorted()
//临时性排序
list.reserve()
len(list)
IndexError: list index out of range
//下标越界 - 进阶操作:
遍历for i in list:
//冒号别忘
numbers = list(range(1,6))
even_numbers = list(range(2,11,2))
//用range函数创建列表
min(list)
max(list)
sum(list)
列表解析:squares = [value**2 for value in range(1,11)]
//更快捷的创建列表
列表切片:list[1:4]
list[-3:]
//列表后三个元素
列表复制:深拷贝:friend_foods = my_foods[:]
浅拷贝:firiend_foods = my_foods
元组
Python将不能修改的值称为不可变的,而不可变的列表被称为元组。
相比于列表,元组是更简单的数据结构。如果需要存储的一组值在程序的整个生命周期内都
不变,可使用元组。
- 基础操作:
tuple = (200,50)
tuple[0]
遍历:for i in tuple:
修改元组可以重新赋值:tuple = (400,20)
小知识:
- 编写Python改进提案(Python Enhancement Proposal,PEP),比较普遍的是PEP8,可以认为是行业规范
IF语句
-
=
和==
!=
的区别,python区分大小写 -
and
or
连接两个条件,建议各个条件用()
分割 - 检查特定值是否再列表中
if 'hello' in list:
if 'hello' not in list:
- 布尔
True
False
- if-elif-else结构:else可以省略
if age < 4:
print("Your admission cost is $0.")
elif age < 18:
print("Your admission cost is $5.")
else:
print("Your admission cost is $10.")
字典
- 创建使用:
alien_0 = {'color': 'green', 'points': 5}
print(alien_0['color'])
print(alien_0['points'])
- 添加键值对:
键—值对的排列顺序与添加顺序不同。 Python不关心键—值对的添加顺序,
而只关心键和值之间的关联关系。
alien_0['x_position'] = 0
- 修改字典里的值:
alien_0['color'] = 'yellow'
- 删除:
del alien_0['points']
- 遍历:
for k, v in user_0.items():
遍历所有
for name in favorite_languages.keys():
遍历所有的key
for name in sorted(favorite_languages.keys()):
按顺序遍历所有的键
for language in favorite_languages.values():
遍历所有值
for language in set(favorite_languages.values()):
遍历所有值,除重复 - 嵌套:列表,字典的包含与被包含:
favorite_languages = {
'jen': ['python', 'ruby'],
'sarah': ['c'],
'edward': ['ruby', 'go'],
'phil': ['python', 'haskell'],
}
用户输入和while循环
- 用户输入:
message = input("Tell me something, and I will repeat it back to you: ")
print(message)
2.求模运算:%
函数
- 实参与形参:
def greet_user(username)
def greet_user("hello")
- 形参默认值:
describe_pet(pet_name='willie')
- 让实参变成可选:
def get_formatted_name(first_name, last_name, middle_name=''):
"""返回整洁的姓名"""
if middle_name:
full_name = first_name + ' ' + middle_name + ' ' + last_name
else:
full_name = first_name + ' ' + last_name
musician = get_formatted_name('jimi', 'hendrix')
- 在函数中修改列表,在函数中对这个列表所做的任何修改都是永久性的,这让你能够高效地处理大量的数据。
- 传递任意数量实参:
def make_pizza(*toppings):
"""打印顾客点的所有配料"""
print(toppings)
make_pizza('pepperoni')
make_pizza('mushrooms', 'green peppers', 'extra cheese')
其中toppings是一个元组
- 结合使用位置实参和任意数量实参:
def make_pizza(size, *toppings):
"""概述要制作的比萨"""
print("\nMaking a " + str(size) +
"-inch pizza with the following toppings:")
for topping in toppings:
print("- " + topping)
make_pizza(16, 'pepperoni')
make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')
- 使用任意数量的关键字实参:
def build_profile(first, last, **user_info):
"""创建一个字典,其中包含我们知道的有关用户的一切"""
profile = {}
profile['first_name'] = first
profile['last_name'] = last
for key, value in user_info.items():
profile[key] = value
return profile
user_profile = build_profile('albert', 'einstein',location='princeton',field='physics')
print(user_profile)
形参**user_info中的两个星号让Python创建一个名为user_info的空字典,并将收到的所有名称—值对都封装到这个字典中。在这个函数中,可以像访问其他字典那样访问user_info中的名称—值对。
- 将函数存储在模块中,
as
重命名