Python基础(2)
if 语句
给出一个简单的示例
cars = ["audi", "bmw", "subaru", "toyota"]
for car in cars:
if car == "bmw":
print(car.upper())
else:
print(car.title())
每条if语句的核心都是一个值为True 或 False的表达式,这种表达式称为条件测试。
检查多个条件:可以使用 and or ;检查特定值:in 或者 not in
if 语句结构有三种:
- 简单的 if 语句
- if - else 语句
- if - elif - else 语句
while处理列表和字典
列表之间移动元素:
F_users = ["alice", "brain", "candace"]
C_users = []
while F_users:
curr = F_users.pop()
C_users.append(curr)
删除为特定值的所有列表元素:
pets = ["dog", "cat", "dog", "goldfish", "cat", "rabbit"]
while "cat" in pets:
pets.remove("cat")
使用用户输入来填充字典:
responses = {}
polling_active = True
while polling_active:
name = input("\nWhat is your name?")
response = input("Wich mountain would you like to climb someday?")
responses[name] = response
input()
input()工作原理:让程序暂停运行,等待用户输入一些文本。
message = input("Tell me something, and I will repeat it back to you: ")
print(message)
使用函数input()时,Python将用户输入解读为字符串。但是我们想要使用整形数据的话,可以使用int()来获取数值输入
height = input("How tall are you,in inches?")
height = int(height)
Python函数
1、定义函数
#定义函数
def greet_user():
print("Hello!")
#调用函数
greet_user()
2、向函数传递信息
def greet_user(username):
print(f"Hello,{username.title()}!")
greet_user("jesse") #调用函数
关键字实参
关键字实参是传递给函数的名称值对。关键字实参无需考虑函数调用中的实参顺序,还清楚指出函数调用中各个值的用途。
关键字实参的顺序无关紧要,python知道各个值该赋给哪个形参。
def describe_pet(animal_type, pet_name):
print(f"\nI have a {animal_type}.")
print(f"My {animal_type}'s name is {pet_name.title()}")
#二者是等价的
describle_pet(animal_type = "hamster", pet_name = "harry")
describle_pet(pet_name = "harry", animal_type = "hamster")
实参占位
在函数定义中,新增可选形参age,并将其默认值设置为特殊值 None(表示变量没有值)。None视为占位值。
def build_person(first_name, last_name, age = None):
person = {"first":first_name, "last":last_name}
if age:
person["age"] = age
return person
musician = build_person("jimi", "hendrix", age = 27)
禁止函数修改列表
我们可以将列表传递给函数后,可以对其进行修改。是因为不同的变量指向的是同一个内存空间的列表。如果禁止函数修改列表,而是仅仅向函数中传递列表的副本。可以如下可做:
function_name(list_name[:]) #切片表示法`[:]` 创建列表的副本。
传递任意数量的实参
由于预先不知道函数接受多少个实参,可在形参前加*
,接收多个实参。
def make_pizza(*toppings):
print(toppings)
make_pizza("pepperoni")
make_pizza("mushrooms", "green peppers", "extra cheese")
形参名 *toppings 中的星号让Python创建一个名为 toppings 的空元组,并将收到的所有值都封装到这个元组中。
使用任意数量的关键字实参
有时候,需要接受任意数量的实参,但预先不知道传递给函数的会是什么样的信息。在这种情况下,可将函数编写成能够接受任意数量的键值对,即调用语句提供了多少就接受多少。
def build_profile(first, last, **user_info):
user_info["first_name"] = first
user_info["last_name"] = last
return user_info
user_profile = build_profile("albert","einstein",
location = "princeton",
field = "physics")
形参 **user_info
中的两个星号让Python创建一个名叫 user_info 的空字典,并将收到的所有名称值对都放在这个字典中。
注意:
给形参指定默认值时,等号两边不要有空格:
def function_name(parameter_0, parameter_1="default value")
就这么多,日后有遇到的,可进行补充。