技术标签: python java Python基础 编程语言 基础语法 Phython函数
【辰兮要努力】:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行!
博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、数据库、项目案例等相关知识点总结,感谢你的阅读和关注,希望我的博客能帮助到更多的人,分享获取新知,大家一起进步!
吾等采石之人,应怀大教堂之心,愿大家奔赴在各自的热爱里…
什么是函数 ?
如果在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数
def 函数名():
代码
# 定义一个函数,能够完成打印信息的功能
def printInfo():
print('------------------------------------')
print(' 人生苦短,我用Python')
print('------------------------------------')
# 定义完函数后,函数是不会自动执行的,需要调用它才可以
printInfo()
------------------------------------
人生苦短,我用Python
------------------------------------
注意:
# 定义一个函数
def test(a,b):
#"2个数求和"
print("%d" % (a + b))
test(11,12)
23
def add2num(a, b):
c = a+b
print c
add2num(110, 22) # 调用带有参数的函数时,需要在小括号中,传递数据
调用函数时,缺省参数的值如果没有传入,则取默认值
。def printinfo(name, age=35):
# 打印任何传入的字符串
print("name: %s" % name)
print("age %d" % age)
# 调用printinfo函数
printinfo(name="miki") # 在函数执行过程中 age去默认值35
printinfo(age=9 ,name="miki")
name: miki
age: 35
name: miki
age: 9
>>> def printinfo(name, age=35, sex):
... print name
...
File "<stdin>", line 1
SyntaxError: non-default argument follows default argument
基本语法如下:
def functionname([formal_args,] *args, **kwargs):
"""函数_文档字符串"""
function_suite
return [expression]
注意:
加了星号(*)的变量args会存放所有未命名的变量参数,args为元组
而加**的变量kwargs会存放命名参数,即形如key=value的参数, kwargs为字典.
def fun(a, b, *args, **kwargs):
print("a =%d" % a)
print("b =%d" % b)
print("args:")
print(args)
print("kwargs: ")
for key, value in kwargs.items():
print("key=%s" % value)
fun(1, 2, 3, 4, 5, m=6, n=7, p=8) # 注意传递的参数对应
a =1
b =2
args:
(3, 4, 5)
kwargs:
key=6
key=7
key=8
def sum_nums_3(a, *args, b=22, c=33, **kwargs):
print(a)
print(b)
print(c)
print(args)
print(kwargs)
sum_nums_3(100, 200, 300, 400, 500, 600, 700, b=1, c=2, mm=800, nn=900)
100
1
2
(200, 300, 400, 500, 600, 700)
{
'mm': 800, 'nn': 900}
“返回值”介绍
所谓“返回值”,就是程序中函数完成一件事情后,最后给调用者的结果
#定义函数
def add2num(a, b):
return a+b
#调用函数,顺便保存函数的返回值
result = add2num(100,98)
#因为result已经保存了add2num的返回值,所以接下来就可以使用了
print(result)
在python中我们怎样返回多个值?
多个return?
def create_nums(num):
print("---1---")
if num == 100:
print("---2---")
return num + 1 # 函数中下面的代码不会被执行,因为return除了能够将数据返回之外,还有一个隐藏的功能:结束函数
else:
print("---3---")
return num + 2
print("---4---")
result1 = create_nums(100)
print(result1) # 打印101
result2 = create_nums(200)
print(result2) # 打印202
---1---
---2---
101
---1---
---3---
202
一个函数返回多个数据的方式
def divid(a, b):
shang = a//b
yushu = a%b
return shang, yushu #默认是元组
result = divid(5, 2)
print(result) # 输出(2, 1)
(2, 1)
def testB():
print('---- testB start----')
print('这里是testB函数执行的代码...(省略)...')
print('---- testB end----')
def testA():
print('---- testA start----')
testB()
print('---- testA end----')
testA()
---- testA start----
---- testB start----
这里是testB函数执行的代码...(省略)...
---- testB end----
---- testA end----
;
拓展应用:思考&实现
# 求3个数的和
def sum3Number(a,b,c):
return a+b+c # return 的后面可以是数值,也可是一个表达式
# 完成对3个数求平均值
def average3Number(a,b,c):
# 因为sum3Number函数已经完成了3个数的就和,所以只需调用即可
# 即把接收到的3个数,当做实参传递即可
sumResult = sum3Number(a,b,c)
aveResult = sumResult/3.0
return aveResult
# 调用函数,完成对3个数求平均值
result = average3Number(11,2,55)
print("average is %d"%result)
average is 22
# 定义全局变量
a = 100
def test1():
print(a) # 虽然没有定义变量a但是依然可以获取其数据
def test2():
print(a) # 虽然没有定义变量a但是依然可以获取其数据
# 调用函数
test1()
test2()
100
100
函数内部中的 变量名 = 数据
此时理解为定义了一个局部变量,而不是修改全局变量的值。总结3:
# 可以使用一次global对多个全局变量进行声明
global a, b
# 还可以用多次global声明都是可以的
# global a
# global b
g_num = 0
def test1():
global g_num
# 将处理结果存储到全局变量g_num中.....
g_num = 100
def test2():
# 通过获取全局变量g_num的值, 从而获取test1函数处理之后的结果
print(g_num)
# 1. 先调用test1得到数据并且存到全局变量中
test1()
# 2. 再调用test2,处理test1函数执行之后的这个值
test2()
def test1():
# 通过return将一个数据结果返回
return 50
def test2(num):
# 通过形参的方式保存传递过来的数据,就可以处理了
print(num)
# 1. 先调用test1得到数据并且存到变量result中
result = test1()
# 2. 调用test2时,将result的值传递到test2中,从而让这个函数对其进行处理
test2(result)
def test1():
# 通过return将一个数据结果返回
return 20
def test2():
# 1. 先调用test1并且把结果返回来
result = test1()
# 2. 对result进行处理
print(result)
# 调用test2时,完成所有的处理
test2()
def get_my_info():
high = 178
weight = 100
age = 18
return high, weight, age
# result = get_my_info()
# print(result)
my_high, my_weight, my_age = get_my_info()
print(my_high)
print(my_weight)
print(my_age)
总结:
# 第1种方式
# a = 4
# b = 5
# c = 0
#
# c = a
# a = b
# b = c
#
# print(a)
# print(b)
# 第2种方式
# a = 4
# b = 5
# a = a+b # a=9, b=5
# b = a-b # a=9, b=4
# a = a-b # a=5, b=4
# print(a)
# print(b)
# 第3种方式
a, b = 4, 5
a, b = b, a
print(a)
print(b)
a = 1
b = a
print(b)
print(id(a))
print(id(b))
print("---")
# 注意a的id值已经变了
a = 2
print(id(a))
print(id(b))
1
2047670192
2047670192
---
2047670208
2047670192
def test1(b): # 变量b一定是一个局部变量,就看它指向的是谁?可变还是不可变
b += b # += 是直接对b指向的空间进行修改,而不是让b指向一个新的
# b = b+b # xx = xx+yyy 先把=号右边的结果计算出来,然后让b指向这个新的地方,不管原来b指向谁
print(b) # 现在b一定指向这个新的地方
print(id(b))
# a = [11, 22]
a = 100
test1(a)
#测试一下
print(a)
print(id(a))
地址不一样
200
2047673376 #两个的地址不一样
100
2047671776
总结:
def 函数名():
语句
def 函数名():
语句
return 需要返回的数值
- 注意:
- 一个函数到底有没有返回值,就看有没有return,因为只有return才可以返回数据
- 在开发中往往根据需求来设计函数需不需要返回值
- 函数中,可以有多个return语句,但是只要执行到一个return语句,那么就意味着这个函数的调用完成
def 函数名(形参列表):
语句
def 函数名(形参列表):
语句
return 需要返回的数值
函数名不能重复
调用的方式为:
函数名([实参列表])
调用时,到底写不写实参
非常感谢你阅读到这里,如果这篇文章对你有帮助,希望能留下你的点赞 关注️ 分享 留言thanks!!!
愿你们奔赴在自己的热爱里!
2020.04.02 记录辰兮的第45篇博客
文章浏览阅读362次。一、类型相关操作1.type函数理解:type(数据)获取指定数据类型例如:type(100) #直接输入是不会打印,需要printprint(type(100)) #整型(int) #得出结果:100print(type(1.25)) #浮点型(float) #得出结果:1.25print(type('陈某某')) #字符串(str) #得出结果:陈某某print(type(10>20)) #布尔(bool) _type({100})
文章浏览阅读798次。在运行idea时常常提示端口被占用,在cmd查询该端口,但显示端口没有被占用怎么办?_unable to open debugger port 12208
文章浏览阅读312次。docker不容置疑,目前最为成熟最广泛的虚拟容器产品,虽然k8s在docker编排基础上,基于战略原因,协同google,ibm推出了CRI标准,兼容一切符合CRI标准的容器厂商,而带动了podman等其他容器产品的百花齐放,但是docker依然在诸多的容器产品里鹤立鸡群,强就是强,无惧大厂商的霸权,今天这里谈谈docker使用里查看容器启动命令的一个工具。runcommandruncommand是一款使用golang实现的基于容器管理的工具,市面上也有一些同类产品的实现,比如笔者我,在没有开发runco_docker joinsunsoft
文章浏览阅读9.9k次,点赞115次,收藏108次。ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。ArrayList 继承了 AbstractList ,并实现了 List 接口。_arrylist
文章浏览阅读1.2k次,点赞12次,收藏73次。一、分布式知识点:分布式基础、缓存机制、消息机制、搜索机制、分布式ID、分布式锁、分布式SESSION、分布式事务、分布式分页、分布式部署、二、分布式基础知识 软件架构设计的六大原则:https://blog.csdn.net/u012562943/article/details/76110761 软件架构需要考虑的基本原则:https://blog.csdn.net/zyhl..._分布式、缓存、消息等机制;
文章浏览阅读1.7w次,点赞2次,收藏8次。寞水_fatal: not a git repository (or any of the parent directories): .git
文章浏览阅读802次。前言之前在网易和CSDN上零零散散写了一些博客,后来因为觉得写博客不方便。首先,是博客的编辑器功能不够强大;另外,我一般习惯在word上写文档,但从word文档转到博客时经常发生格式混乱的情况。由于当时觉得写博客费时、麻烦,就没有着手寻找相关的解决方法。但是,随着本地word文档越来越多,散步在硬盘的不同文件夹,对于自己管理博客和查看博客都造成了不便。首先,无法让自己清楚的从整体上查看_新浪博客 wlw
文章浏览阅读513次,点赞18次,收藏8次。• 在这种开发技术模式下,系统的开发流程主要是前端专注于使用Vue.js构建动态和响应式的用户界面,同时通过Ajax技术与后端进行数据交换,实现了前后端的逻辑分离。传统的停车场管理方式已经无法满足现代社会的需求,因此,研究并开发一种智能化的停车场管理系统显得尤为重要。同时,系统还可以根据停车场的实际情况,自动调整收费标准,实现公平合理的收费。其次,智能化停车场管理系统可以提高停车场的管理效率。通过这种系统,可以实现车辆的自动识别、自动收费、自动导航等功能,大大提高了停车场的管理效率和服务质量。
文章浏览阅读48次。多人認為遠距離關係(異地戀)幾乎都會無疾而終。家人不支持,甚至朋友也勸你不要全身心投入,以免未來傷心透頂。的確,維持一段異地戀並不容易——遙遠的距離令很多事變得難以實現。一切變得複雜起來,偶爾難過萬分,偶爾孤獨無助。不過,距離的遙遠卻也讓最簡單的小事做起來甜甜蜜蜜。例如,挽著對方的手,一起同桌吃飯,感受彼此的觸碰,一起散步,聞著彼此的發香...... 在異地戀中,如此渺小的願望瞬間顯得彌足珍貴。雖然異地戀很艱難,但也會帶來很多驚喜。如果真的不能避免異地戀,那我們也只能花心思去維持這段戀情了。
文章浏览阅读541次。题目大意:对一个数组排序,但基本操作是翻转(使倒序)前k个元素(k可以是0到n-1(n为数组元素个数))。#define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include #include #include #inc_煎饼 stacks of flapjacks
文章浏览阅读4.6k次,点赞2次,收藏12次。首先讲下搬运作品上热门,很多朋友傻傻的以为把别人的视频去掉水印或者修改一下MD5值然后发出去就可以热门了,那么简单的话全世界都是热门了!拜托,先搞懂短视频的检测原理,MD5检测都是多少年前的技术了?你确定快手火山抖音这种大平台会用这么low的检测技术?我来告诉你们他们是怎么检测的!抽取你的作品,某个时间段的某一帧。和其他作品的某一帧,进行点对点之间的对比重合。然后再上下浮动若干秒进行对比..._快手如何检测视频是否原创
文章浏览阅读2k次。Cesium 实战 - 点对象(point)、广告牌(billboard)、文字标签(label)贴地问题以及总结。_cesium point