python基础课程系列(六)

7.3.使用 while 循环来处理列表和字典
for 循环是一种遍历列表的有效方式,但在 for 循环中不应修改列表,否则将导致 Python 难以跟踪其中的元素。要在遍历列表的同时对其进行修改,可使用 while 循环。通过
将 while 循环同列表和字典结合起来使用,可收集、存储并组织大量输入,供以后查看和显示。

7.3.1.在列表之间移动元素
假设有一个列表,其中包含新注册但还未验证的网站用户;验证这些用户后,如何将他们移到另一个已验证用户列表中呢?一种办法是使用一个 while 循环,在验证用户的同时
将其从未验证用户列表中提取出来,再将其加入到另一个已验证用户列表中。

#首先创建一个待验证用户列表和一个用于存储已验证用户的空列表
unconfirmed_users = ['alice', 'brian', 'candace']
confirmed_users = []

#验证每个用户,直到没有未验证用户为止,
#将每个经过验证的列表都移到已验证用户列表中
while unconfirmed_users:
    current_user = unconfirmed_users.pop()

    print('Verifying user: ' + current_user.title())
    confirmed_users.append(current_user)

#显示所有已验证的用户
print('\nThe following users have been confirmed:')
for confirmed_user in confirmed_users:
    print(confirmed_user.title())
-------------------------------------------------------
Verifying user: Candace
Verifying user: Brian
Verifying user: Alice

The following users have been confirmed:
Candace
Brian
Alice

7.3.2.删除包含特定值的所有列表元素

>>> print(pets)
['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat']
>>> while 'cat' in pets:
    pets.remove('cat')
>>> print(pets)
['dog', 'dog', 'goldfish', 'rabbit']

7.3.3.使用用户输入来填充字典
这个程序首先定义了一个空字典( responses ),并设置了一个标志( polling_active ),用于指出调查是否继续。只要 polling_active 为 True , Python 就运
行 while 循环中的代码。
-------------------------------------------------------
responses = {}

#设置一个标志,指出调查是否继续
polling_active = True

while polling_active:
    #输入被调查者的名字和回答
    name = input('\nWhat is your name?')
    response = input('Which mountain would you like to climb someday?')
    #将答案存储在字典里
    responses[name] = response
    #看看是否还有人要参与调查
    repeat = input('Would you like to let another person respond?(yes\/no)')
    if repeat == 'no':
        polling_active = False

#调查结束,显示结果
print('\n--- Poll Results ---')
for name, response in responses.items():
    print(name + ' would like to climb ' + response + '.')
-------------------------------------------------------
What is your name?Eric
Which mountain would you like to climb someday?Denali
Would you like to let another person respond?(yes\/no)yes

What is your name?Lynn
Which mountain would you like to climb someday?Devil's Thumb
Would you like to let another person respond?(yes\/no)no

--- Poll Results ---
Lynn would like to climb Devil's Thumb.
Eric would like to climb Denali.

第8章 函数
8.1.定义函数
下面是一个打印问候语的简单函数,名为 greet_user() :
-------------------------------------------------------
>>> def greet_user():
    print('Hello!')
>>> greet_user()
Hello!

8.1.1.向函数传递信息
可在函数定义 def greet_user() 的括号内添加 username 。通过在这里添加 username ,就可让函数接受你给 username 指定的任何值。现在,这个函数要求你调用它时给 username 指定一个值。调用 greet_user() 时,可将一个名字
传递给它
------------------------------------------------------
>>> def greet_user(username):
    print('Hello, ' + username.title() + '!')
>>> greet_user('jesse')
Hello, Jesse!

代码 greet_user('jesse') 调用函数 greet_user() ,并向它提供执行 print 语句所需的信息。

8.1.2.实参和形参
在函数 greet_user() 的定义中,变量 username 是一个 形参 —— 函数完成其工作所需的一项信息。在代码 greet_user('jesse') 中,值 'jesse' 是一个 实参 。


8.2.传递实参
向函数传递实参的方式很多,可使用 位置实参 ,这要求实参的顺序与形参的顺序相同;也可使用 关键
字实参 ,其中每个实参都由变量名和值组成;还可使用列表和字典。
8.2.1.位置实参
你调用函数时, Python 必须将函数调用中的每个实参都关联到函数定义中的一个形参。为此,最简单的关联方式是基于实参的顺序。这种关联方式被称为 位置实参 。
-------------------------------------------------------
>>> def describe_pet(animal_type, pet_name):
    print('\nI have a ' + animal_type + '.')
    print('My ' + animal_type + '\'s name is ' + pet_name.title() + '.')
    
>>> describe_pet('hamster', 'harry')

I have a hamster.
My hamster's name is Harry.
-------------------------------------------------------

8.2.2.关键字实参
关键字实参 是传递给函数的名称 — 值对。你直接在实参中将名称和值关联起来了,因此向函数传递实参时不会混淆(不会得到名为 Hamster 的 harry 这样的结果)。关键字实参让
你无需考虑函数调用中的实参顺序,还清楚地指出了函数调用中各个值的用途。

def describe_pet(animal_type, pet_name):
    print('\nI have a ' + animal_type + '.')
    print('My ' + animal_type + '\'s name is ' + pet_name.title())

describe_pet(animal_type='hamster', pet_name='harry')
-------------------------------------------------------
I have a hamster.
My hamster's name is Harry

注意:使用关键字实参时,务必准确地指定函数定义中的形参名

8.2.3.默认值
编写函数时,可给每个形参指定 默认值 。在调用函数中给形参提供了实参时, Python 将使用指定的实参值;否则,将使用形参的默认值。因此,给形参指定默认值后,可在函数
调用中省略相应的实参。使用默认值可简化函数调用,还可清楚地指出函数的典型用法。

def describe_pet(pet_name, animal_type='dog'):
    print('\nI have a ' + animal_type + '.')
    print('My ' + animal_type + '\'s name is ' + pet_name.title())

describe_pet(pet_name='willie')
-------------------------------------------------------
I have a dog.
My dog's name is Willie

如果要描述的动物不是小狗,可使用类似于下面的函数调用:
>>> describe_pet(pet_name='harry', animal_type='hamster')

I have a hamster.
My hamster's name is Harry
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值