Python基础语法(中)

六、字典

6.1 构成

字典由一系列阐述属性的键值对构成。

例如,当我们设计一个包含外星人的游戏,现在给外星人设置属性,就可用到字典。

#一个外星人
alien_0={'color':'green','point':5}
print(alien_0['color'])

根据以上形式,我们可以索引字典中我们想要的属性。

6.2 添加,修改和删除

字典作为一个动态的存储结构,可随时对其中键值对进行添加,修改,或删除的操作。

例如,现在我们要定位外星人的位置,为其属性加上二维坐标。

alien_0['x_position']=0
alien_0['y_position']=0
print(alien_0)

同样的添加方式可以用于创建空字典后。

当我们想修改字典中已存在的属性,重新赋值即可。

删除该属性的键值对,则调用del函数即可。

alien_0['color']='yellow'
del alien_0['point']
print(alien_0)

6.3 访问和遍历
6.3.1 访问get

前文已讲述过利用【】访问字典中的键值对。但当字典中不存在该键值对的时候,p会发生错误(Keyerror),阻碍整个程序的运行。

要避免这样的错误,可调用get函数进行访问。当访问的键值对不存在时,get会自动返回一个特定值,避免traceback。

point_value=alien_0.get('point','No found.')
print(point_value)

由于上文我们已经删除了point属性,此时get返回第二个参数。

6.3.2 遍历键值对

遍历字典有三种方式,遍历键值对,遍历键,遍历值。语法都较为固定。

下面是遍历键值对:

for key,value in alien_0.items():
    print(key)
    print(value)

两个变量,并调用函数items()。print会自动分行打印结果。

 6.3.3 分别遍历键和对
for key in alien_0.keys():
    print(key)
    
for value in alien_0.values():
    print(value)

 

6.4 集合

集合通常用大括号标识,不具备索引的功能,只是单纯用来储存数据。

Fruits={'apples','oranges'}
6.5 嵌套
6.5.1 字典列表

字典可以存储在列表中。比如我们有多个alien,此时我们把他们存储在一个列表中。

aliens=[alien_0,alien_1,alien_2]

同样,按照列表操作可以遍历该列表,按字典操作可以遍历各个字典,这里不再赘述。

6.5.2 在字典中存储列表

列表可在键或值的位置,这样也构成了字典和列表的嵌套。

七、while循环

7.1 input函数

input用于用户和程序的交互,让程序读取用户输入的文本,再将某些文本经过一系列操作后返还给顾客。

name=input("Please tell me your name.\n")
print(f"Hello,{name.title()}")

input括号内是提示语,可帮助我们编写清晰的程序,反应明确的信息。

当input获取的是数字时,需要多一步转化:

weight=input("Please tell me your weight.\n")
weight=float(weight)
if weight>60:
    print("ok.")

 

float是浮点数转化。

7.2 while循环

例如,我们想要用while循环进行数数。

current_number=0
while current_number<=5:
    print(current_number)
    current_number+=1

while后面是进入循环的条件。条件成立,则继续循环。条件不成立,终止循环。

当我们想设计程序自动选择是否退出循环,也可用while进行设置。

7.3 break和continue

while循环有多种结束方式,其中break和continue是其中非常重要的两种。

break指立即退出循环,不再执行之后的循环命令。

while True:
    city=input()
    if city=='quit':
        break
    else:
        print(f"The {city} is good.")

此时输入quit 则循环终止;反之,可以一直输入城市进行打印。

而continue,则是跳过本轮循环,直接进入到下一轮。

例如,当我们想利用while循环来打印奇数。

current_number=0
while current_number<10:
    current_number+=1
    if current_number%2==0:
        continue
    print(current_number)

可利用continue排除偶数的数数循环轮次,所打印的就只有奇数。

每个循环都应该有终止条件,而不是让他无限循环。如果一不小心陷入无限循环,可按Ctrl+c终止循环窗口。

八、函数

8.1 定义函数

定义一个新函数,函数头包含要传递的参数,函数体是一系列指令,调动函数,传递参数。

def great_user(user_name):
    print(f"Hello,{user_name}")
great_user('Cherry')

此时运行如下:

8.2 参数类型及传递方式

参数分为形参和实参。

函数头括号内一个或多个参数为形参,调用时传递的参数为实参。

传递实参有两种方式,位置实参(推荐),关键字实参。

def describe_fruit(name,color):
    print(f"The {name} is {color}.")
describe_fruit('pear','yellow')
describe_fruit(name='pear',color='yellow')

两种调用方式输出一样,但前者明显比后者简洁。

同样,参数在初始可设置默认值,当一次调用也许不需要用到所有参数时候,设置的默认值可为空。

传递的参数类型上,python没有做太限制的规定,无论是字典还是列表,都可以作为参数。

8.3 返回值

函数并非总是直接显示输出,它还可以处理一些数据,并返回一个值。这个值可以是参数,可以是列表,也可以是字典。

函数返回这个值,后续可再对这个值进行包括打印之外的一切操作。

下面是一个返回字典的简单函数例子。

def build_person(name,age):
    person={'name1':name,'age1':age}
    return person
Jerry=build_person('Jerry',18)
8.4 传递任意数量的实参

有时候,我们并不知道要向一个函数传递多少菜单。例如,当我们要定义一个函数去打印采购订单,我们事先并不知道要采购多少东西,可使用下面这种方法实现:

def make_pizza(*toppings):
    print(toppings)

这时我们可以在传输参数的时候传递任意数量的参数,都会被打印出来。

8.5 导入模块参数

如果要从一个模块导入函数,可以调用import。

from pizza import make_pizza as p

同时调用as函数,可以简化函数名。

如果导入模块所有函数,则如下:

from pizza import *

同样,模块名也可以简化

import pizza as p

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值