《Python编程从入门到实践》day11

本文介绍了Python中函数参数的使用,包括实参和形参,并通过实例展示了如何在函数中传递和修改列表,以及如何防止函数直接修改原列表。还讲解了列表切片的应用以保护原始数据。
摘要由CSDN通过智能技术生成

昨日知识点回顾:

函数实参、形参

用户输入和while循环

今日知识点学习:

8.4 传递列表

def users(names):
   """向列表中的用户发出简单的问候"""
   for name in names:
       msg = "Hello, "+name.title() +'!'
       print(msg)

users_names = ['hoa','voe','lor']
users(users_names)

# 运行结果:
# Hello, Hoa!
# Hello, Voe!
# Hello, Lor!

        8.4.1 在函数中修改列表

                非函数实现:

unprint_names = ['lor','voe','kob','flo']
print_names = []

while unprint_names:
    print_name = unprint_names.pop()
    print('已打印的客户姓名:' + print_name)
    print_names.append(print_name)

print('\nThe following names are printed:' )
for name in print_names:
    print(name)

# 运行结果:
# 已打印的客户姓名:flo
# 已打印的客户姓名:kob
# 已打印的客户姓名:voe
# 已打印的客户姓名:lor
# 
# The following names are printed:
# flo
# kob
# voe
# lor
def sw_p(unprint_names,print_names):
    '''需要打印的名字从列表1中转移元素至列表2'''
    tag = True
    while tag:
        print_name = unprint_names.pop()
        print('已打印的客户姓名:' +print_name)
        print_names.append(print_name)
        if unprint_names == []:
            tag = False

def p(print_names):
     '''打印列表2的所有客户姓名'''
     print('\nThe following names are printed:')
     for print_name in print_names:
         print(print_name)

u_names = ['lor','voe','kob','flo']
p_names = []

sw_p(u_names,p_names) 
p(p_names)

#运行结果:
# 已打印的客户姓名:flo
# 已打印的客户姓名:kob
# 已打印的客户姓名:voe
# 已打印的客户姓名:lor
# 
# The following names are printed:
# flo
# kob
# voe
# lor

        8.4.2 禁止函数修改列表

def sw_p(unprint_names,print_names):
    '''需要打印的名字从列表1中转移元素至列表2'''
    tag = True
    while tag:
        print_name = unprint_names.pop()
        print('已打印的客户姓名:' +print_name)
        print_names.append(print_name)
        if unprint_names == []:
            tag = False

def p(print_names):
     '''打印列表2的所有客户姓名'''
     print('\nThe following names are printed:')
     for print_name in print_names:
         print(print_name)

u_names = ['lor','voe','kob','flo']
p_names = []

sw_p(u_names[:],p_names)
p(p_names)
print(u_names)

#运行结果:
# 已打印的客户姓名:flo
# 已打印的客户姓名:kob
# 已打印的客户姓名:voe
# 已打印的客户姓名:lor
# 
# The following names are printed:
# flo
# kob
# voe
# lor
# ['lor', 'voe', 'kob', 'flo']

调用函数时:函数名(列表名[:])

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值