函数定义、函数的参数、函数的默认参数

简介:

函数定义

为什么使用函数
降低编程难度

  • 通常将一个复杂的大问题分解成一系列的小问题,然后将小问题划分成更小的问题,当问题细化为足够简单时,我们就可以分而治之。各个小问题解决了,大问题就迎刃而解了。
    代码重用
  • 避免重复劳作,提供效率

定义函数:def 函数名();
调用函数:函数名()
解释说明:python 中使用 def 命令创建一个函数,也就是 "定义"(define)的意思,调用函数其实就是执行函数中的代码
注意事项:函数名的定义跟变量的命名规则一样,函数名由字母、数字、下划线组成,不能以数字开头,不可以使用关键字。另外,当函数名有两个单词时,我们一般把第二个单词的首字母大写来表示这是一个函数(形成一种规范),如:isNum、hanShu、myName 等等,在后面的类中我们则是把所有首字母都写出大写来表示这是一个类,如:IsNum、HanShu、MyName 等等

def fun():
    print 'hello world'
fun()

结果:hello world

函数的参数

形式参数和实际参数

  • 在定义函数时,函数名后面括号中的变量名称叫做“形式参数”,或者称为“形参”
  • 在调用函数时,函数名后面括号中的变量名称叫做“实际参数”,或者称为“实参”

函数定义、函数的参数、函数的默认参数

函数的默认参数

1、
函数定义、函数的参数、函数的默认参数

2、
函数定义、函数的参数、函数的默认参数

3、 默认值必须放在最后,否则会报错
函数定义、函数的参数、函数的默认参数

string方法

In [1]: import string 
In [2]: text = "Monty Python's Flying Circus"
In [3]: string.upper(text) #变为大写
Out[4]: "MONTY PYTHON'S FLYING CIRCUS"
In [5]: string.lower(text) #变为小写
Out[5]: "monty python's flying circus"

In [8]: string.split(text) #分割
Out[8]: ['Monty', "Python's", 'Flying', 'Circus']

In [12]: string.replace(text,'Python','java') #替换文本
Out[12]: "Monty java's Flying Circus"

In [15]: string.count(text,'P') #计算字符个数
Out[15]: 1

In [16]: string.lowercase #所有小写字母
Out[16]: 'abcdefghijklmnopqrstuvwxyz'

In [17]: string.uppercase #所有大写字母
Out[17]: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

In [18]: string.join(string.split(text), "+") #分割符号
Out[18]: "Monty+Python's+Flying+Circus"

In [19]: string.digits #所有数字
Out[19]: '0123456789'

练习:
1、# 1. 设计一个函数,统计任意一串字符串中数字字符的个数
#例如:
#"adfdfjv1jl;2jlk1j2" 数字个数为4个
思路:1、导入string方法,遍历字符串是否是数字,如果是则加上1,然后打印

import string
def getNumtime(text):
num=0
for i in range(0,len(text)):
if text[i] in string.digits:
num+=1
print 'num is {0}'.format(num)
getNumtime('adfdfjv1jl;2jlk1j21112')

2、# 2. 设计函数,统计任意一串字符串中每个字母的个数,不区分大小写
#例如:
#"aaabbbcccaae111"
#a 5个
#b 3个
#c 3个
#e 1个

思路:1、导入string
2、创建一个函数,将统一变为大写字母
3、创建一个字典,遍历所有的大写字母,添加到字典中
4、计算字母的 个数
方法:
In [28]: string.ascii_uppercase
Out[28]: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

def getLettersCount(text):
text = text.upper() #转换成大写
dict1 = dict() #创建空字典
for i in string.ascii_uppercase:
dict1.setdefault(i, 0) #将26个字母当做key增加到字典中,value为0

for i in xrange(0, len(text)):       #遍历字符串
    if text[i] in string.ascii_uppercase:       #如果在26个字母中
        dict1[text[i]] += 1                     #value加1

for k in dict1:
    if dict1[k] != 0:       #不为0的字母,打印出来
        print("{0} {1}".format(k, dict1[k]))

方法二:
In [37]: map(tmp.upper().count, string.ascii_uppercase)
Out[37]: [1, 0, 0, 4, 1, 3, 0, 0, 1, 1, 0, 0, 0, 0, 1, 2, 1, 0, 4, 0, 0, 0, 1, 0, 0, 0]

In [38]: x=[1,2,3]
In [39]: y=['q', 'w', 'e']
zip合并为
In [40]: zip(x,y)
Out[40]: [(1, 'q'), (2, 'w'), (3, 'e')]

将列表转换为字典
In [42]: dict2=dict([(1,2),(3,4)])
In [43]: dict2
Out[43]: {1: 2, 3: 4}

dict1={'A':1,'B':2}
import string
def getsckcount(tmp):
dict1=dict(zip(string.ascii_uppercase,map(tmp.upper().count,string.ascii_uppercase)))
for k in dict1:
if dict1[k]!=0:
print '{0} {1}'.format(k,dict1[k])
while True:
tmp=raw_input('Please string: ')
if tmp!="quit":
getsckcount(tmp)
else:
break










本文转自 iekegz 51CTO博客,原文链接:http://blog.51cto.com/jacksoner/2056731,如需转载请自行联系原作者
目录
相关文章
|
5月前
|
移动开发 搜索推荐 数据挖掘
这个全功能体育直播平台我愿称为观赛神器
熊猫比分是一款专为体育迷打造的全能观赛平台,支持多端同步和高清直播,提供赛事直播、即时比分、新闻资讯等功能。其1080P画质、多路信号源切换及弹幕互动让球迷仿佛身临其境;秒级更新的实时数据覆盖20+赛事类型,自定义关注球队功能确保用户不错过任何关键瞬间。此外,平台采用分布式架构与CDN加速技术,保证高并发下流畅体验,且隐私保护完善。无论是普通球迷还是体育从业者,都能在熊猫比分找到理想中的观赛生态。
|
3天前
|
搜索推荐 编译器 Linux
一个可用于企业开发及通用跨平台的Makefile文件
一款适用于企业级开发的通用跨平台Makefile,支持C/C++混合编译、多目标输出(可执行文件、静态/动态库)、Release/Debug版本管理。配置简洁,仅需修改带`MF_CONFIGURE_`前缀的变量,支持脚本化配置与子Makefile管理,具备完善日志、错误提示和跨平台兼容性,附详细文档与示例,便于学习与集成。
271 116
|
18天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
12天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
663 219
|
5天前
|
数据采集 人工智能 自然语言处理
Meta SAM3开源:让图像分割,听懂你的话
Meta发布并开源SAM 3,首个支持文本或视觉提示的统一图像视频分割模型,可精准分割“红色条纹伞”等开放词汇概念,覆盖400万独特概念,性能达人类水平75%–80%,推动视觉分割新突破。
349 34
Meta SAM3开源:让图像分割,听懂你的话
|
10天前
|
人工智能 移动开发 自然语言处理
2025最新HTML静态网页制作工具推荐:10款免费在线生成器小白也能5分钟上手
晓猛团队精选2025年10款真正免费、无需编程的在线HTML建站工具,涵盖AI生成、拖拽编辑、设计稿转代码等多种类型,均支持浏览器直接使用、快速出图与文件导出,特别适合零基础用户快速搭建个人网站、落地页或企业官网。
1571 157
|
存储 人工智能 监控
从代码生成到自主决策:打造一个Coding驱动的“自我编程”Agent
本文介绍了一种基于LLM的“自我编程”Agent系统,通过代码驱动实现复杂逻辑。该Agent以Python为执行引擎,结合Py4j实现Java与Python交互,支持多工具调用、记忆分层与上下文工程,具备感知、认知、表达、自我评估等能力模块,目标是打造可进化的“1.5线”智能助手。
897 61