函数

def twoSum(nums,target):
for i in range(len(nums),-1,-1): # for i in range(4) == for i in [0,1,2,3]
for j in range(i+1,len(nums)): # [1,2,3]
if nums[i]+num[j]==target:
returni,j nums=[2,7,11,15]
target=9
res=twoSum(nums,target)
if list(res)==[0,1]
print('通过')
else:
print('不通过')

函数:数学中的函数,自变量+因变量---》python函数和数学中的函数毫无瓜葛。

下水道--》通下水道--》找一个工具(买一个工具--》

方便拿来就用,不需要关心内部构造)

函数就相当这个工具---》干一件特定的事

函数是在分开工具,不会减少代码量。

定义函数

def register():
# 注册
print('注册功能')
username_inp = input('请输入你的用户名:')
print('username_inp:', username_inp)
pwd_inp = input('请输入你的密码:')
print('pwd_inp:', pwd_inp) with open('user_info.txt', 'a', encoding='utf8') as fa:
if ':' in username_inp:
print('输入错误,用户名不能含有 :')
else:
fa.write(f'{username_inp}:{pwd_inp}')
print('保存成功') def login():
# 登陆
print('登录功能')
with open('user_info.txt', 'r', encoding='utf8') as fr:
data = fr.read()
data_split = data.split(':') username, pwd = data_split[0], data_split[1] # 一次性定义多个变量
# username = data_split[0]
# pwd = data_split[1] username_inp = input('请输入你的用户名:')
pwd_inp = input('请输入你的密码:') if username == username_inp and pwd == pwd_inp:
print('登录成功')
else:
print('登录失败') # 以上只是在定义一个函数,创建工具(函数定义阶段只检测语法,不执行代码) # 如果要运行函数,直接调用
# login()
register()

函数定义的三种形式

空函数

def register():
# TODO:注册功能,暂时回话

有参函数(有参数()的函数)

def compare(x,y):
# x=10
# y=10
if x>y:
print(x)
else:
print(y)

当你使用手电筒,在使用的时候调一下(输入一个参数)

compare(30,40)

无参函数

def func():
print(1) func()

函数的返回值

def compare()
x=10
y=20
if x>y:
print(x)
else:
print(y) # 20 print(1, compare) # <function compare at 0x00000255297B1EA0> # 函数内存地址
# res = compare() # res接收一个变量值(函数的返回值)
# print('res:',res) # 不打印,我需要拿到这个值

1.如果函数没有返回值,默认返回None。

None就是返回值(使用函数后拿到的一个结果)

2.函数可以通过return返回出返回值

def compare():
x=10
y=20
if x>y:
return x
else:
return y res=compare()
print(res)

3.return 可以终止函数

def print_1_10():
for i in range(10):
if i =8:
return # 终止函数
print(i) print_1_10()

4.return 可以返回多个值,以列表形式存储

def return_nums():
return 10, 100, 1000 res=return_nums()
print(res[1])

函数的参数

def compare(num1,num2): # 形(形式)参;一般具有描述意义,毫无作用(接收实参)---》变量名(接收变量值)

    if num1>num2:
print(num1)
else:
print(num2) compare(80,140) #实(实际)参:具有实际的意义, 具体的一个值(传给形参)--》变量值

形参

位置形参

从左到右一个一个写过去,就叫做位置形参。

默认(默认值)形参:给位置形参一个默认值,让它成为默认形参,以后调用不需要为他传值,但是你为它传值的话,它也会接收。

默认参数必须得放在最后面(位置参数后面)

def compare(num1,num2=140): #  形(形式)参:一般具有描述意义,毫无作用(接收实参) --》变量名(接收变量值)
if num1>num2:
print(num1)
else:
print(num2) compare(80,60) # 实(实际)参:具有实际的意义,具体的一个值(传给形参)---》 变量值
compare(180) #实(实际)参:具有实际的意义,具体的一个值(传给形参) ---》变量值

实参

位置实参

从左到右一个一个写过,就叫做位置实参,(有多少个位置形参,就必须有多少个位置实参,从左到右依次传值)

关键字实参

位置实参加上默认值,然后按照位置形参名传值。

关键字实参也必须在位置参数后面

def compare2(num1,num2): # 形(形式)参:一般具有描述意义,毫无作用(接收实参) --》变量名(接收变量值)
if num1 > um2:
return num1
else:
return num2 def compare4(num1,num2,num3,num4):
print(num1,num2,num3,num4) # 4 0 2 3
res1=compare2(num1,num2)
res2=compare2(num3,num4)
res3=compare2(res1,res2) return res3 res=compare4(4,0,num4=2,num3=3) # 4 0 3 2 # 关键字参数,按照位置形参名给值,这个一般用于参数过多(一般建议函数参数不超过3个)
print(res)

后面加的是参数的数据类型,没有限制死; ---》限制返回值

def f1(num:list,target:int)--》:
print(nums,target)
return[1,2] s='nick' # type:list # 规定了这个变量的数据类型

day 09 预科的更多相关文章

  1. Windows7WithSP1/TeamFoundationServer2012update4/SQLServer2012

    [Info   @09:03:33.737] ====================================================================[Info   @ ...

  2. day 09作业 预科

    作业 1.简述定义函数的三种方式. 定义函数的三种方式为空函数,有参函数和无参函数 2.简述函数的返回值. 如果函数没有返回值,会直接返回到None: 函数可以通过return返回出返回值: retu ...

  3. 《HelloGitHub月刊》第09期

    <HelloGitHub>第09期 兴趣是最好的老师,<HelloGitHub>就是帮你找到兴趣! 前言 转眼就到年底了,月刊做到了第09期,感谢大家一路的支持和帮助

  4. js正则表达式校验非零的正整数:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. iOS系列 基础篇 09 开关、滑块和分段控件

    iOS系列 基础篇 09 开关.滑块和分段控件 目录: 案例说明 开关控件Switch 滑块控件Slider 分段控件Segmented Control 1. 案例说明 开关控件(Switch).滑块 ...

  6. http://www.cnblogs.com/Lawson/archive/2012/09/03/2669122.html

    http://www.cnblogs.com/Lawson/archive/2012/09/03/2669122.html

  7. u-boot-2010.09移植(A)

    第一阶段 1.开发环境 系统:centOS6.5           linux版本:2.6.32         交叉编译器:buildroot-2012.08 以上工具已经准备好,具体安装步骤不再 ...

  8. u-boot-2010.09移植(B)

    前面我们的u-boot只是在内存中运行,要想在nandflash中运行,以达到开机自启的目的,还需作如下修改 一.添加DM9000网卡支持 1.修改board/fl2440/fl2440.c中的boa ...

  9. Linux JDK 安装及卸载 http://www.cnblogs.com/benio/archive/2010/09/14/1825909.html

    参考:http://www.cnblogs.com/benio/archive/2010/09/14/1825909.html

随机推荐

  1. 【转载】 TensorFlow学习——tf.GPUOptions和tf.ConfigProto用法解析

    原文地址: https://blog.csdn.net/c20081052/article/details/82345454 ------------------------------------- ...

  2. (转)CMDB介绍

    原文:https://www.cnblogs.com/xuecaichang/p/10265936.html CMDB开发---https://blog.csdn.net/bbwangj/articl ...

  3. java 欢迎页 主页 设置为servlet的方法

    [参考]Java Web 设置默认首页 [参考]设置servlet或action作为欢迎页面 1. 使用HTML<meta>标签跳转至servlet  <META HTTP-EQUI ...

  4. 如何上传本地jar至远程仓库供其他项目使用

    我们首先需要创建自己内部nexus私服仓库.这里假设你已经做好了. 其次我们要明白nexus上如下几个component的用处. maven-central:maven中央库,默认从https://r ...

  5. SQL Server:时间范围查询重叠

    常常碰到要校验数据范围是否存在重叠冲突的情况,典型的场景是房间预订. 假如房间A已经有9月1日-9月10日的预订记录,当其它客人再来预订时,系统必须判断,不能与这个日期范围产生重叠. 有四种情况会产生 ...

  6. EasyNVR摄像机网页无插件直播方案H5前端构建之:bootstrap-datepicker日历插件的实时动态展现

    EasyNVR场景需求 基础:不管是城市监控还是园区管理或者是幼儿园监控,这些安防监控需求已经成为我们生活中不可或缺的重要一环,这不仅仅是提升城市管理水平和人民群众安全感的现实需求,也是完善社会治安消 ...

  7. python 科学计算基础库安装

    1.numpyNumPy(Numeric Python)是用Python进行科学计算的基本软件包. NumPy是Python编程语言的扩展,增加了对大型多维数组和矩阵的支持,以及一个大型的高级数学函数 ...

  8. java 正则 replace 忽略大小写

    String description = model.getDescription(); if (!"".equals(description)) { //replace(/\&l ...

  9. SignalR长连接的简单用法

    ASP.NET SignalR 是为 ASP.NET 开发人员提供的一个库,可以简化开发人员将实时 Web 功能添加到应用程序的过程.实时 Web 功能是指这样一种功能:当所连接的客户端变得可用时服务 ...

  10. ai切片的完美解决方案

    ai切片的完美解决方案1 背景拖到外面2 导出psd3 ps切片 背景夹层黑色就看清楚啦