python函数4种类型及函数生成帮助文档
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种类型及函数生成帮助文档的更多相关文章
- 深入理解DOM节点类型第四篇——文档片段节点DocumentFragment
× 目录 [1]特征 [2]作用 前面的话 在所有节点类型中,只有文档片段节点DocumentFragment在文档中没有对应的标记.DOM规定文档片段(document fragment)是一种“轻 ...
- python基础-第十一篇-11.2DOM为文档操作
文档对象模型(DOM)是一种用于HTML和XML文档的编程接口 节点类型 12种节点类型都有NodeType属性来表明节点类型 节点关系 <div id="t"> &l ...
- Javascript中只能在 HTML 输出流中使用 document.write,在文档已加载后使用它(比如在函数中),会覆盖整个文档。
意思就是说,初次加载时如果没有加载document.write,那么再次加载的时候回覆盖掉原来的内容,只显示新加载的内容. <!DOCTYPE html> <html> < ...
- 三种方法解决android帮助文档打开慢
三种方法解决android帮助文档打开慢 经查是因为本地文档中的网页有如下两段js代码会联网加载信息,将其注释掉后就好了 <link rel="stylesheet" h ...
- Python函数中参数类型
在学习Python函数的时候,函数本身的定义和调用并不是很复杂,但是函数的参数类型和用法的确有些复杂.在此做一个小结,加深理解. Python参数的定义 负责给函数提供一些必要的数据或信息,以保证函数 ...
- python中错误、调试、单元测试、文档测试
错误分为程序的错误和由用户错误的输入引起的错误,此外还有因为各种各样意外的情况导致的错误,比如在磁盘满的时候写入.从网络爬取东西的时候,网络断了.这类错误称为异常 错误处理 普通的错误处理机制就是在出 ...
- Sqlite3中存储类型和数据类型结合文档解析。
sqlite3是个很小的数据库,运行在手机,机顶盒上....那它就不可能像musql,sqlserver那么规范,有很多的数据类型,之前我也以为它定义了很多数据类型,其实不是他就5个存储类,那么多数据 ...
- Python基础(2):__doc__、文档字符串docString、help()
OS:Windows 10家庭中文版,Python:3.6.4 Python中的 文档字符串(docString) 出现在 模块.函数.类 的第一行,用于对这些程序进行说明.它在执行的时候被忽略,但会 ...
- python爬虫处理在线预览的pdf文档
引言 最近在爬一个网站,然后爬到详情页的时候发现,目标内容是用pdf在线预览的 比如如下网站: https://camelot-py.readthedocs.io/en/master/_static/ ...
随机推荐
- 冒泡排序和选择排序-java
冒泡排序 假设有一数组int [] arr = {9,5,4,10,2};原理是第一个元素和第二个比较,如果前者大于后者便交换位置,然后第二个元素和第三个元素比较,如果前者大于后者便交换位置.以此类 ...
- WdatePicker时间插件
next_door_boy CnBlogs Home New Post Contact Admin Rss Posts - 14 Articles - 5 Comments - 0 WdateP ...
- 如何更改Linux的ssh端口
1. 修改/etc/ssh/sshd_config里的Port字段 Port 22改为Port 1000(你自定义的端口) 2. 重启sshd服务 #service sshd restart
- Python3 引入模块的方法
例子 import random 产生随机整数 import random secret = random.randint(0,10)
- WEB应用:预览
主题 建立WEB应用通用目录 配置classpath 将WEB应用注册到服务器中 使用制定url前缀调用WEB应用的servlet.html.jsp 为所有自己编写的servlet制定url 建立WE ...
- 把要写的内容做个list,半年过去了
先说点题外话,来国家气象局的第三周,今天出去和丁书记吃了个饭,基本在聊大学时候的人和事,好像都没怎么变,只是不联系的人愈发不会再联系. 抛开学校的课程不谈,半年做了三件事:CUMT校园导航 / Ope ...
- asp.net -mvc框架复习(1)-ASP.NET网站开发概述
1.网站开发的基本步骤: 2.网站开发的需要的知识结构 (1)网站开发前台页面技术 页面设计:HTML .CSS+DIV 页面特效:JavaScript.jQery (2)OOP编程核心公共技能 C ...
- libJPEG-turbo库使用示例代码
libJPEG库是用于编码数据为JPEG格式或者解码JPEG格式图片的常用库,OpenCV读取图像底层实现就是利用libJPEG库,而libJPEG-turbo则效率更高. 具体怎么编译编译libJP ...
- intern
java.lang.String的intern()方法"abc".intern()方法的返回值还是字符串"abc",表面上看起来好像这个方 法没什么用处.但实际 ...
- PreparedStatement和Statement区别
在JDBC应用中,如果你已经是稍有水平开发者,你就应该始终以PreparedStatement代替Statement.也就是说,在任何时候都不要使用Statement 一.代码的可读性和可维护性. 虽 ...