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. Python scrapy------分类获取美团整站数据

    欢迎联系讨论:qq:1170370113 以下是我们获取美团页面的城市信息 获取到了城市信息以后我们可以进行分类保存,以便于后续能够分类获取数据 获取我们需要城市的景区的所有相关id并且进行保存 最后 ...

  2. win处navicat直接导出的sql脚本导入Linux mysql报错问题

    最近几天在把win上的项目的数据库转移到Ubuntu,于是第一件事就是从win处的navicat直接导出sql脚本,然后进入Ubuntu导入的时候会报错误,跳过错误继续执行导致数据库表的缺失. 跨平台 ...

  3. MySql 修改外键 支持级联删除

    首先必须要有外键,InnoDB甚么的都不说了,直接上修改句子. 要先删除该外键,然后添加. 具体原因貌似是因为不支持alter外键的操作. ALTER TABLE `t_terminal` DROP ...

  4. ASP.NET没有魔法——ASP.NET MVC 模型绑定

    在My Blog中已经有了文章管理功能,可以发布和修改文章,但是对于文章内容来说,这里缺少最重要的排版功能,如果没有排版的博客很大程度上是无法阅读的,由于文章是通过浏览器查看的,所以文章的排版其实与网 ...

  5. pandas读取excel中指定数据的行数

    shuju = pd.read_excel(filename) loandata = pd.DataFrame(shuju) ncol = (len(loandata.keys())) data = ...

  6. python3 第十章 - 如何进行进制转化

    在计算机的世界里,2进制是主流,而在人类的自然世界中,10进制是主流,那么在这之间必然就会存在进制转化的问题.本章我们就来谈谈进制转化,也希望通过本章加深您对前些章所学知识的理解. 原理:先说说关于位 ...

  7. linux_nginx_rewrite

    什么是Nginx的rewrite? 实现URL地址重写,比较复杂的write需要开发来完成,伪静态处理实现是开发的工作, 这rewrite写在location中 指令语法:    rewrite re ...

  8. Web Magic 总体架构

    1.2 总体架构 WebMagic的结构分为Downloader.PageProcessor.Scheduler.Pipeline四大组件,并由Spider将它们彼此组织起来.这四大组件对应爬虫生命周 ...

  9. Servlet--HttpServletRequest一些不常用的方法

    我们在使用Servlet和表单进行交互的时候,不管是传参和接参经常要写一些路径.关于具体的Servlet的传参和接参我后面会有详细的整理,这里先整理一下不怎么常用的到一些HttpServletRequ ...

  10. tomcat安装自制作ssl证书

    1.执行命令 C:\servers\apache-tomcat-8.0.27>keytool -genkey -alias tomcat -keyalg RSA -keypass pass123 ...