python全栈学习--day9(函数初始)
Python 函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。
定义一个函数
你可以定义一个由自己想要功能的函数,以下是简单的规则:
- 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
- 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
- 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
- 函数内容以冒号起始,并且缩进。
- return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
实例:
l1 = '23faesdafea2f'
def my_len():
# def 关键字 定义一个关键字
#my_len 函数名书写规范与变量一样
# def 与函数名中间一样
#函数名():加上冒号
#函数体
count = 0
for j in l1:
count += 1
return count
print(my_len())
#函数的返回值
#写函数不要在函数里写print()
#1,在函数中,遇到return结束函数
#2,将值返回给函数的调用者。
#无return 返回None
#return None 返回None
#return 一个值 该值是什么,就直接返回给函数的调用者。
#return 多个值,将多个值放到一个元祖里,返回给函数的调用者
函数的传递
#函数的执行:函数名 + ()
while True:
print(222)
print(666)
print(len([1,23,4])) # 函数的返回值
#写函数,不要再函数中写print()
#return
#1,在函数中,遇到return结束函数。
#2,将值返回给函数的调用者。
# 无 return
# return None
# return 1个值 该值是什么,就直接返回给函数的调用者,函数名()
# return 多个值 将多个值放到一个元组里,返回给函数的调用者。
def fun():
print(111)
print(222)
print(333)
return 2,3,4
a,b,c = fun()
print(a,b,c)
def my_len(l): # l 形式参数 形参
print(l)
count = 0
for j in l:
count += 1
return count
a = 'fdsafdsafdsagfsadf'
print(my_len(a)) # 实际参数 ,实参
print(my_len([1,2,3]))
#实参角度:
#1. 位置传参,按顺序,一一对应。
def func(a,b,c):
print(a)
print(b)
print(c)
func('fdsafdas',3,4)
输出执行:

函数实例功能:
实例一:(写一个函数,功能大小比较)
num1 = int(input('请输入第一个数字:'))
num2 = int(input('请输入第二个数字:'))
def max_min(a, b):
if a > b:
return a
else:
return b
print('本次比较最大数字为:',max_min(num1, num2))
执行后输出:

num1 = int(input('请输入第一个数:'))
num2 = int(input('请输入第二个数:'))
def max_min(a, b):
return a if a > b else b
print('本次比较的最大数为:', max_min(num1, num2))

#2,关键字传参,不按顺序,一一对应。
def max_min(a,b):
return a if a > b else b
print(max_min(b = 300,a = 200))
执行后输出:

#3,混合传参,关键字参数永远在最后面。
def func1(a,b,c,d,e):
print(a)
print(b)
print(c)
print(d)
print(e)
func1(1,2,d=4,c=3,e=5)
func1(1,4,d=2,c=3,e=5)
执行后输出:
1
2
3
4
5
1
4
3
2
5
# 按照形参角度。
#1,位置传参。按顺序,一一对应。 def func(a,b,c):
print(a)
print(b)
print(c)
func('fdsafdas',3,4)
执行后输出:

##实例:(使用函数写一个员工信息录入表)
def Infor_entry(username,sex='男'):
with open('name_list',encoding='utf-8',mode='a') as f1:
f1.write('{}\t{}\n'.format(username,sex)) while True:
username = input('请输入姓名(男生以1开头):').strip()
if '1' in username:
username = username[1:]
Infor_entry(username)
else:
Infor_entry(username,'女')
执行后输出:

写入后的文本内容:

###今日练习
1. 写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
###实例一:
def fun2():
li = [11,22,33,44,55,66,77,88,99]
lis =[]
for i in range(len(li)):
if i % 2 == 1:
lis.append(li[i])
return lis
print(fun2())
执行输出:

###实例2
def fun2():
li = ['我','写','的','第','一','个','函','数']
lis = []
for i in range(len(li)):
if i % 2 == 1:
lis.append(li[i])
return lis
print(fun2())
执行输出:

2.写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
def fun2():
li = [11,22,33,44,55,66,77,88,99]
lis =[]
for i in range(len(li)):
if i % 2 == 1:
lis.append(li[i])
return lis
print(fun2()) #方法二
def func1(argv):return argv[1::2]
print(func1([1,2,3,4])) #方法三:
def func1(argv):
l1 = []
for i in range(len(argv)):
if i % 2 == 1:
l1.append(argv[i])
return l1
print(func1([1,2,3,4,5,6]))
# 3、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
li = [11,22,33,44,55,66,77,88,99]
dic = {"name":"jin","age":18,"sex":"male","sx":"ma","se":"ml","ne":"john"}
def mylen(a):
# for i in range(len(a)):
# i += 1
# i = len(a)
return len(a) if len(a) > 5 else '长度小于5'
print(mylen(li))
4. 写函数,检传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
###实例1
li = [11,22,33,44,55,66,77,88,99,'john','tom','jack','json']
def fun4(a):
for i in a:
pass return a[:2]
print(fun4(li)) ###实例2
li = [11,22,33,44,55,66,77,88,99,'john','tom','jack','json']
def fun4(a):
if len(a) > 2:
return a[:2]
print(fun4(li))
5、写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数,并返回结果。
num1 = input('请输入内容:')
def fun5(a):
s1 = 0
s2 = 0
s3 = 0
s4 = 0
for i in a:
if i.isdigit(): #统计数字
s1 += 1
elif i.isalpha(): #统计字母
s2 += 1
elif i.isspace(): #统计空格
s3 += 1
else: #统计其他
s4 += 1
layout = '''
数字个数为: {}
字母个数为: {}
空格个数为: {}
其他个数为: {}
'''
return layout.format(s1,s2,s3,s4)
print(fun5(num1))
6.写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容,并返回结果。
li = [11,22,33,44,55,66,77,88,99,' ']
s1 = 'bhkbnlnlj'
dic = {"name":"jin","age":18,"sex":"male","sx":"ma","se":"ml","ne":"john"}
def fun6(a):
for i in a:
#print(i)
if i == ' ':
flag = True
break
else:
flag = False
#break
#return '没有空格'
#return flag
# if flag == True:
# return '此次判断有空格'
# else:
# return '此次判断正常'
return '此次判断有空格' if flag == True else '此次判断正常'
print(fun6(s1))
7. 写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
dic = {"k1": "v1v1", "k2": [11,22,33,44]}
PS:字典中的value只能是字符串或列表
###方法一:
dic = {"k1": "v1v1", "k2": [11,22,33,44]}
def fun7(a):
for i in a:
if len(dic[i]) > 2: ##这里做匹配判断
dic[i] = dic[i][0:2] #这里使用步长法
return a
print(fun7(dic)) ###方法二:
dic = {"k1":"v11","k2":"v22","k3":"v33","k4":"v44"}
def fun6(argv):
for i in argv:
if len(argv[i]) > 2:
argv[i] = argv[i][:2]
return argv
print(fun6(dic))
8、写函数,接收两个数字参数,返回比较大的那个数字。
num1 = input('请输入第一个数字:')
num2 = input('请输入第二个数字:')
def fun9(a,b):
return a if a > b else b
print('本次比较最大数为:',fun9(num1,num2))
python全栈学习--day9(函数初始)的更多相关文章
- python全栈学习--day11(函数高级应用)
一,函数名是什么? 函数名是函数的名字,本质:变量,特殊的变量. 函数名()执行此函数 ''' 在函数的执行(调用)时:打散. *可迭代对象(str,tuple,list,dict(key))每一个元 ...
- python全栈开发-Day9 函数对象、函数嵌套、名称空间与作用域
一 .函数对象 一 .函数是第一类对象,即函数可以当作数据传递 可以被引用 可以当作参数传递 返回值可以是函数 可以当作容器类型的元素 二. 利用该特性,优雅的取代多分支的if def foo(): ...
- python全栈学习--day10(函数进阶)
一,引言 现在我有个问题,函数里面的变量,在函数外面能直接引用么? def func1(): m = 1 print(m) print(m) #这行报的错 报错了:NameError: name 'm ...
- python全栈学习路线
python全栈学习路线-查询笔记 查询目录 一,硬件 十一,数据 ...
- Python全栈学习:匿名函数使用规范
匿名函数,当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便. 在Python中,对匿名函数提供了有限支持.还是以map()函数为例,计算f(x)=x2时,除了定义一个f(x) ...
- Python全栈之路----函数----返回值
函数外部的代码想要获取函数的执行结果,就可以在函数里用return语句,把结果返回. def stu_register(name,age,course='PY',country='CN'): prin ...
- python全栈学习--day3
一.基础数据类型 基础数据类型,有7种类型,存在即合理. 1.int 整数 主要是做运算的 .比如加减乘除,幂,取余 + - * / ** %...2.bool 布尔值 判断真假以及作为条件变量3. ...
- python全栈开发笔记---------函数
一 数学定义的函数与python中的函数 初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因 ...
- python全栈学习--day1
计算机基础 CPU:中央处理器 内存:4GB,8GB,临时处理事务的地方,供给CPU数据. 硬盘:相当于电脑的数据库,存储着大量的数据,文件,电影等. 操作系统:执行者,支配所有关系 window ...
随机推荐
- WPF基础篇之资源文件路径
WPF资源文件的路径 关于WPF资源文件的路径 这几天在WPF中调用资源文件的Uri时,因为是在代码里调用Uri写的Uri总是不对,要么运行直接报异常,要么说找不到资源文件.下面是我解决的整个经过和碰 ...
- GitHub图形界面使用笔记
GitHub图形界面使用笔记 学会了最简单的在GitHub上上传项目和展示项目,怕自己会忘记所以还是先记录下了来. GitHub 是一个共享虚拟主机服务,用于存放使用Git版本控制的软件代码和内容 ...
- 第二篇:数据可视化 - 基本API
前言 数据可视化是数据挖掘非常重要的一个环节,它不单在查阅了解数据环节使用到,在整个数据挖掘的流程中都会使用到. 因为数据可视化不单可以形象地展示数据,让你对数据有更好的总体上的了解,而且还可以让你清 ...
- 【网络流24题21】最长k可重区间集问题
题面戳我 题目描述 对于给定的开区间集合I和正整数k,计算开区间集合I的最长k可重区间集的长度. 输入格式: 的第 1 行有 2 个正整数n和k,分别表示开区间的个数和开区间的可重迭数.接下来的 n行 ...
- Chrome 浏览器各版本下载大全【转载】
随着最近64位版本的 Chrome 浏览器正式版的推出,Chrome 浏览器再次受到广大浏览迷的重点关注,今天我们就整理一下各版本的 Chrome 浏览器 32位及64位的下载地址,方便各位浏览迷选择 ...
- 关系型数据库工作原理-SQL重写(翻译自Coding-Geek文章)
本文翻译自Coding-Geek文章:< How does a relational database work>.原文链接:http://coding-geek.com/how-data ...
- Django---第三方
第三方: 3.富文本编辑器:此处以tinymce为例 使用编辑器的显示效果为: 1.下载安装 在网站pypi网站搜索并下载"django-tinymce-2.4.0" 解压 tar ...
- WebService下实现大数据量的传输
设置RemotingFormat = SerializationFormat.Binary;再序列化,通过WebService传输,客户端接收,再反序列化,确实效果大大的优于直接传送DataSet,不 ...
- C# Redis实战(三)
三.程序配置 在C# Redis实战(二)中我们安装好了Redis的系统服务,此时Redis服务已经运行. 现在我们需要让我们的程序能正确读取到Redis服务地址等一系列的配置信息,首先,需要在Web ...
- js备战春招の四のdevtool中各种错误、调试的使用技巧
try 语句允许我们定义在执行时进行错误测试的代码块. catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块. JavaScript 语句 try 和 catch 是成对出现的. ...