Pyouthon中函数参数是引用传递(注意不是值传递)。

对于不可变类型,因变量不能修改,所以运算不会影响到变量自身;

而对于可变类型来说,函数体中的运算有可能会更改传入的参数变量。

a += a      !=       a = a + a

交换两个数:

方式一:

方式二:

方式三:python 特有

python中函数按照有无参数和返回值分为:

  1.有参数有返回值(常用)

  2.有参数无返回值

  3.无参数有返回值  

  4.无参数无返回值

举例:

*有参数有返回值(常用)

#定义函数
def add_num(a,b):
#把结果相加
add = a + b
return add
#调用函数
result = add_num(100,200)
print("reuslt=%d" % result )

*有参数无返回值

# 0关灯,1开灯
def set_on_off(isOffOn):
if isOffOn == 0 :
print("关灯")
elif isOffOn == 1 :
print("开灯")
#调用函数
set_on_off(1)
set_on_off(0)

*无参数有返回值

# 获取温度
def get_temperature():
return 24
temperature = get_temperature()
print('当前的温度为:%d'%temperature)

*无参数无返回值

#打印软件菜单信息
def print_menu():
print('-'*50)
print(' 名片管理系统1.0')
print('')
print(' 1. 添加名片')
print(' 2. 删除名片')
print(' 3. 查找名片')
print('-'*50)
#调用函数
print_menu()

在函数中把结果返回给调用者,需要在函数中使用return

函数可返回多个值:

给函数添加文档说明方式:

1、'说明内容'

2、"说明内容"

3、'''说明内容'''

4、"""说明内容"""

给py文件生成帮助文档:

生成py文件,写入函数,最后导入这个py文件(代码中是test),help(test)

查看单个函数的帮助文档,无需导入文件,函数定义好,即可help(函数名)

效果图:

card_infos = []
def menu_infos():
'''封装程序菜单'''
print('='*35)
print('\t名片管理系统1.1')
print('\t1.新增一个名片')
print('\t2.删除一个名片')
print('\t3.修改一个名片')
print('\t4.查看一个名片')
print('\t5.显示名片列表')
print('\t6.退出名片管理系统')
print('='*35) def add_card():
'''封装增加名片功能'''
global card_infos
name = input('请输入要增加名片的姓名:')
qq = int(input('请输入要增加名片的qq:'))
wechat = input('请输入要增加名片的微信:')
card_info = {}
card_info['姓名'] = name
card_info['QQ'] = qq
card_info['微信'] = wechat
card_infos.append(card_info)
print('名片列表如下:')
print('姓名\tQQ\t微信')
for card_info in card_infos:
print('%s\t%d\t%s' %(card_info['姓名'],card_info['QQ'],card_info['微信'])) def delete_card():
'''封装程序删除名片功能'''
global card_infos
flag = 0
select = int(input('输入1根据内容删除;输入2根据下标删除:'))
if select == 1:
name = input('请输入要删除名片的姓名:')
for card_info in card_infos:
if card_info.get('姓名') == name:
card_infos.remove(card_info)
print('删除成功!')
print('删除后名片列表如下:')
print('姓名\tQQ\t微信')
for card_info in card_infos:
print('%s\t%d\t%s' %(card_info['姓名'],card_info['QQ'],card_info['微信']))
flag = 1
break
elif flag == 0:
print('您要删除的名片不存在!')
elif select == 2:
index = int(input('请输入要删除名片序号:'))
if index <= len(card_infos)+1:
del card_infos[index-1]
name = card_infos[index-1]['姓名']
print('删除成功!')
print('删除后名片列表如下:')
print('姓名\tQQ\t微信')
for card_info in card_infos:
print('%s\t%d\t%s' %(card_info['姓名'],card_info['QQ'],card_info['微信']))
else:
print('您要删除的名片不存在!')
else:
print('输入有误!输入1根据内容删除;输入2根据下标删除') def modify_card():
'''封装程序修改名片功能'''
global card_infos
name = input('请输入要修改名片的姓名:')
content = input('请输入要修改的内容:')
new_content = input('请输入新内容:')
for card_info in card_infos:
if card_info.get('姓名') == name:
if content == card_info.get('姓名'):
card_info['姓名'] = new_content
print('修改成功!')
print('删除后名片列表如下:')
print('姓名\tQQ\t微信')
for card_info in card_infos:
print('%s\t%d\t%s' %(card_info['姓名'],card_info['QQ'],card_info['微信']))
flag = 1
break
elif content == str(card_info.get('QQ')):
new_content = int(new_content)
card_info['QQ'] = new_content
print('修改成功!')
print('删除后名片列表如下:')
print('姓名\tQQ\t微信')
for card_info in card_infos:
print('%s\t%d\t%s' %(card_info['姓名'],card_info['QQ'],card_info['微信']))
flag = 1
break
elif content == card_info.get('微信'):
card_info['微信'] = new_content
print('修改成功!')
flag = 1
print('删除后名片列表如下:')
print('姓名\tQQ\t微信')
for card_info in card_infos:
print('%s\t%d\t%s' %(card_info['姓名'],card_info['QQ'],card_info['微信']))
break
elif flag == 0:
print('您要修改的名片不存在!')
else:
print('您要修改的名片不存在!') def find_card():
'''封装程序查看名片的功能'''
global card_infos
name = input('请输入要查看名片的姓名:')
for card_info in card_infos:
if card_info.get('姓名') == name:
print('姓名\tQQ\t微信')
print('%s\t%d\t%s' %(card_info['姓名'],card_info['QQ'],card_info['微信']))
flag = 1
break
elif flag == 0:
print('您要查看的名片不存在!') def display_card():
'''封装程序显示名片功能'''
global card_infos
print('名片列表如下:')
print('姓名\tQQ\t微信')
for card_info in card_infos:
print('%s\t%d\t%s' %(card_info['姓名'],card_info['QQ'],card_info['微信'])) def main():
'''程序入口'''
while True:
num = int(input('请输入您选择的编号:'))
if num == 1:
add_card()
elif num == 2:
delete_card()
elif num == 3:
modify_card()
elif num == 4:
find_card()
elif num == 5:
display_card()
elif num == 6:
break
else:
print('输入有误!请输入正确的编号') #main()
import test
help(test)

python函数4种类型及函数生成帮助文档的更多相关文章

  1. 深入理解DOM节点类型第四篇——文档片段节点DocumentFragment

    × 目录 [1]特征 [2]作用 前面的话 在所有节点类型中,只有文档片段节点DocumentFragment在文档中没有对应的标记.DOM规定文档片段(document fragment)是一种“轻 ...

  2. python基础-第十一篇-11.2DOM为文档操作

    文档对象模型(DOM)是一种用于HTML和XML文档的编程接口 节点类型 12种节点类型都有NodeType属性来表明节点类型 节点关系 <div id="t"> &l ...

  3. Javascript中只能在 HTML 输出流中使用 document.write,在文档已加载后使用它(比如在函数中),会覆盖整个文档。

    意思就是说,初次加载时如果没有加载document.write,那么再次加载的时候回覆盖掉原来的内容,只显示新加载的内容. <!DOCTYPE html> <html> < ...

  4. 三种方法解决android帮助文档打开慢

    三种方法解决android帮助文档打开慢   经查是因为本地文档中的网页有如下两段js代码会联网加载信息,将其注释掉后就好了 <link rel="stylesheet" h ...

  5. Python函数中参数类型

    在学习Python函数的时候,函数本身的定义和调用并不是很复杂,但是函数的参数类型和用法的确有些复杂.在此做一个小结,加深理解. Python参数的定义 负责给函数提供一些必要的数据或信息,以保证函数 ...

  6. python中错误、调试、单元测试、文档测试

    错误分为程序的错误和由用户错误的输入引起的错误,此外还有因为各种各样意外的情况导致的错误,比如在磁盘满的时候写入.从网络爬取东西的时候,网络断了.这类错误称为异常 错误处理 普通的错误处理机制就是在出 ...

  7. Sqlite3中存储类型和数据类型结合文档解析。

    sqlite3是个很小的数据库,运行在手机,机顶盒上....那它就不可能像musql,sqlserver那么规范,有很多的数据类型,之前我也以为它定义了很多数据类型,其实不是他就5个存储类,那么多数据 ...

  8. Python基础(2):__doc__、文档字符串docString、help()

    OS:Windows 10家庭中文版,Python:3.6.4 Python中的 文档字符串(docString) 出现在 模块.函数.类 的第一行,用于对这些程序进行说明.它在执行的时候被忽略,但会 ...

  9. python爬虫处理在线预览的pdf文档

    引言 最近在爬一个网站,然后爬到详情页的时候发现,目标内容是用pdf在线预览的 比如如下网站: https://camelot-py.readthedocs.io/en/master/_static/ ...

随机推荐

  1. Spark算子--SortBy

    转载请标明出处http://www.cnblogs.com/haozhengfei/p/39edcbb10b5076599c0e5609b7136b88.html SortBy--Transforma ...

  2. 从零开始学习前端JAVASCRIPT — 5、JavaScript基础BOM

    1:BOM(Browser  Object  Model)概念 window对象是BOM中所有对象的核心. 2:window属性(较少用) self:self代表自己,相当于window. windo ...

  3. jsp页面固定页面为绝对路径

    1 <!-- 固定到绝对路径 --> 2 <base href="<%=request.getContextPath()%>/"/>

  4. SVN报Previous operation has not finished; run 'cleanup'&

    做着项目突然SVN报Previous operation has not finished; run 'cleanup' if it was interrupted,进度又要继续,烦.百度一下发现很多 ...

  5. PHP error_reporting() 错误控制函数功能详解

    定义和用法: error_reporting() 设置 PHP 的报错级别并返回当前级别.   函数语法: error_reporting(report_level)   如果参数 level 未指定 ...

  6. 用photoshop将图片四角变成圆角

    1.用PS打开一张图片,用矩形选框工具,选出你要保留的的那一部分,"选择→修改→平滑".在弹出的选框里添入数值,值越大角就越圆. 2.然后选择"选择→反选"再按 ...

  7. CCF系列之字符串匹配(201409-3)

    试题编号:201409-3试题名称:字符串匹配时间限制: 1.0s内存限制: 256.0MB 问题描述 给出一个字符串和多行文字,在这些文字中找到字符串出现的那些行.你的程序还需支持大小写敏感选项:当 ...

  8. Java compiler level does not match the version of the installed java project facet错误的解决

    因工作的关系,Eclipse开发的Java项目拷来拷去,有时候会报一个很奇怪的错误.明明源码一模一样,为什么项目复制到另一台机器上,就会报“java compiler level does not m ...

  9. .net Core学习笔记1 创建简单的 .net core项目

    1.打开vs2017>Web 1:创建实体类: namespace ProductMvc.Models { //商品类型 public class ProductType { public in ...

  10. BSA Network Shell系列-nexec命令

    # nexec ## 1 说明:nexec是远程命令接口引擎 ,用于在远程主机执行命令 nexec [-?] [-t term] [-o] [-i] [-l] [-nohup hostname &qu ...