zoukankan      html  css  js  c++  java
  • Python基础之function

    前言

    函数是带名字的代码块,用于完成具体的工作

    函数
    def say_hello():
    	"""文档字符串"""
    	print('Hello')
    
    say_hello()
    
    函数传参
    def say_hello(user_name):
    	print("Hello," + user_name.title())
    	
    say_hello('world')
    

    实参和形参

    # 在函数say_hello()的定义中,变量user_name是一个形参——函数完成其工作所需的一项信息。
    # 在代码say_hello('world')中,值'world'是一个实参,实参是调用函数时传递给函数的信息,
    # 这个值被存储在形参username中。
    
    位置实参
    # 按顺序关联实参到形参称为位置实参
    def describe_language(user_name, language):
    	"""描述喜欢的语言"""
    	print(user_name.title() + "'s  favorite language is " + language.title() + ".")
    	
    describe_language('maggieq', 'java')
    describe_language('coisini', 'python')
    
    关键字实参
    # 关键字实参(明确指出各个实参对应的形参)
    # 关键字实参是传递给函数的名称—值对,明确指出各个实参对应的形参
    describe_language(language='c', user_name='tom')
    
    默认值
    # 可以给函数形参设置默认值
    def describe_language(user_name, language ='python'):
    	"""描述喜欢的语言"""
    	print(user_name.title() + "'s  favorite language is " + language.title() + ".")
    		
    describe_language(user_name='coisini')
    describe_language(user_name='maggieq', language='java')
    
    返回值
    def get_formatted_name(first_name, last_name):
    	"""返回整洁的姓名"""
    	full_name = first_name + ' ' + last_name
    	return full_name.title()
    
    print(get_formatted_name('Li', 'Si'))
    
    返回字典
    def get_person(first_name, last_name):
    	"""返回一个字典,其中包含一个人的信息"""
    	person = {'first': first_name, 'last': last_name}
    	return person
    	
    print(get_person('jimi', 'hendrix'))
    
    传递列表
    def get_users(names):
    	"""向列表中的每位用户发出问候"""
    	for name in names:
    		print("Hello," + name.title())
    
    get_users(['coisini', 'maggieq'])
    
    传递任意数量的实参
    # *languages意为用空元组接收所有实参
    def print_languages(*languages):
    	"""打印所有语言"""
    	print(languages)
    	
    print_languages('java')
    print_languages('java', 'python', 'c')
    
    结合使用位置实参和任意数量实参
    # 要让函数接收不同类型的实参,必须将接纳任意数量实参的形参放在最后
    # python先匹配位置实参和关键字实参,再将余下的实参都收集到最后一个形参中
    def print_languages(user_name, *languages):
    	print(user_name.title() + "'s  favorite language is:")
    	for language in languages:
    		print("- " + language)
    				
    print_languages('coisini', 'java')
    print_languages('maggieq', 'java', 'python', 'c')
    
    使用任意数量的关键字实参
    # **user_info 表示用一个名为user_info的空字典接收所有键值对
    def build_person(first, last, **user_info):
    	"""创建一个字典,接收所有"""
    	person= {}
    	person['first'] = first
    	person['last'] = last
    	for key, val in user_info.items():
    		person[key] = val
    		
    	return person
    	
    user_person = build_person('Li', 'Si',
    			   location='China',
    			   sex='man')
    							
    print(user_person)
    
    - End -
    一个努力中的公众号
    关注一下吧
    以上为本篇文章的主要内容,希望大家多提意见,如果喜欢记得点个推荐哦
    作者:Maggieq8324
    本文版权归作者和博客园共有,欢迎转载,转载时保留原作者和文章地址即可。
  • 相关阅读:
    CodeBlocks下载与安装教程
    Delphi 资源管理器套件
    做了一个 62 进制的简单实现
    关于 TRegEx.Split()
    Delphi 的链式代码
    在Linux上编译dotnet cli的源代码生成.NET Core SDK的安装包
    尝试解决在构造函数中同步调用Dns.GetHostAddressesAsync()引起的线程死锁
    .NET Core中遇到奇怪的线程死锁问题:内存与线程数不停地增长
    将asp.net core站点发布到IIS上遇到的问题
    .NET Core 构建配置文件从 project.json 到 .csproj
  • 原文地址:https://www.cnblogs.com/maggieq8324/p/14322872.html
Copyright © 2011-2022 走看看