简述定义函数的三种方式

空函数、无参函数、有参函数

简述函数的返回值

函数内部代码经过一系列的逻辑处理返回的结果

  • 函数没有返回值,默认返回None
  • 函数可以通过return返回出返回值
  • return可以终止函数
  • return可以返回多个值

简述函数的参数

形参

在定义函数时括号里的参数就是形参,具有描述意义,没有实际意义,本质上是变量名

实参

在调用函数时传入的值,称为实参,本质上就是变量值

位置参数

位置形参

在定义函数时,按照从左往右的顺序依次定义,就是位置形参

位置实参

调用函数时,按照从左往右的顺序依次传入值,就是位置实参。有多少个位置形参,就有多少个位置实参。

默认形参

  • 在定义函数阶段就已经赋值,在调用函数时就不需要传值
  • 在调用函数时传值,这样的值也是可以改变的
  • 默认形参在位置形参之后

关键字实参

在调用函数时,按照key=value的形式为指定的参数传值,称为关键字实参

关键字实参在位置实参之后

编写注册函数

def register():
username_inp = input('请输入用户名:').strip()
pwd_inp = input('请输入密码:').strip()
print(f'用户名:{username_inp}, 密码:{pwd_inp}')
with open('user_info.txt', 'a', encoding='utf8') as fa:
if (':'or '.') in username_inp:
print('输入错误, 请重新输入!')
else:
fa.write(f'{username_inp}:{pwd_inp}\n')
print('注册成功') register()

编写登录函数

def login():
with open('user_info.txt', 'r', encoding='utf8') as fr:
data = fr.read()
data_list = data.split()
# print(data_list) username_inp = input('请输入用户名:').strip()
pwd_inp = input('请输入密码:').strip()
for i in data_list:
# print(i)
username = i.split(':')[0]
pwd = i.split(':')[1] if username == username_inp and pwd == pwd_inp:
print('登录成功!')
break
else:
print('登录失败!')
break
login()

day09 作业的更多相关文章

  1. python day09作业答案

    2. def lst(input): lst2=[] count=0 for i in range(0,len(input)): if i %2!=0: lst2.append(input[i]) r ...

  2. python day09作业

  3. day09作业—函数进阶

    # 2.写函数,接收n个数字,求这些参数数字的和.(动态传参) def func1(*args): sum = 0 for i in args: sum += i print(sum) func1(1 ...

  4. day09作业

    一.填空题 1.方法 2.堆内存 3.构造方法 4.this 5.this 6.static 7.使用类名进行访问 8.package import class 9.关键字 10.lang 二.选择题 ...

  5. day09作业01用户登录与验证

    import timeLoginTime = time.asctime( time.localtime(time.time()) )print ("time %s" % Login ...

  6. python 作业

    Linux day01 计算机硬件知识整理 作业要求:整理博客,内容如下 编程语言的作用及与操作系统和硬件的关系 应用程序->操作系统->硬件 cpu->内存->磁盘 cpu与 ...

  7. DSB

    Linux day01 计算机硬件知识整理 作业要求:整理博客,内容如下 编程语言的作用及与操作系统和硬件的关系 应用程序->操作系统->硬件 cpu->内存->磁盘 cpu与 ...

  8. Python异常处理和进程线程-day09

    写在前面 上课第九天,打卡: 最坏的结果,不过是大器晚成: 一.异常处理 - 1.语法错误导致的异常 - 这种错误,根本过不了python解释器的语法检测,必须在程序运行前就修正: - 2.逻辑上的异 ...

  9. python开发学习-day09(队列、多路IO阻塞、堡垒机模块、mysql操作模块)

    s12-20160312-day09 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...

随机推荐

  1. 02-Django项目创建

    第一.Django项目创建 django-admin startproject 项目名 # 注意如果使用虚拟环境,创建应用必须先进入虚拟环境 进入项目目录,tree看项目结构(此时提示tree com ...

  2. vue中显示原网页代码--codemirror

    在项目中遇到了一个需求,后台返回string类型的html源码,要求前端这边按照codeview这种类型把这个源码展示出来.现总结如下 1.如果没啥样式的需求,只是要求该缩进缩进的话,可以直接使用in ...

  3. Html学习之十八(表格与表单学习--统计表制作)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. RSTP基本配置

    1.用四台S3700交换机,2台PC机,一台HUB,组建网络拓扑 2.测试主机间的连通性 3.配置rstp基本功能 (1)把交换机stp模式由默认的mstp变为rstp.在华为交换机上默认开启了mst ...

  5. 【Eureka篇三】Eureka自我保护机制(3)

    1. 自我保护机制演示 eureka在频繁修改微服务名称的时候,可以会出现如下现象: 2. 什么是自我保护模式? 默认情况下,如果EurekaServer在一定时间内没有接收到某个微服务实例的心跳,E ...

  6. Ubuntu16.04下安装Cmake-3.8.2并为其配置环境变量

    下载安装包 首先我们到官网下载最新的cmake二进制安装包https://cmake.org/files/ 这里,我下载的是比较新的cmake-3.8.2-Linux-x86_64.tar.gz解压安 ...

  7. Python 链表(linked list)

    链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 链表由一系列结点组成,结点可以在运行时动态生成 优点 由于不必须按顺序存储,链表在插入.删除的时候 ...

  8. 第六章 HTTP首部

    第六章 HTTP首部 HTTP首部包括:请求行<方法,URI,版本号>/响应行<版本,状态码>.请求/响应首部字段.通用首部字段.实体首部字段 1.HTTP首部字段 HTTP首 ...

  9. Pandownload倒下了,还有它,又一款百度云下载神器,速度可达10M/s

    最近很多小伙伴反馈 Pandownload 不好使了 对此我表示 脑壳疼 不过经过一番折腾 还是找到了一个不错的替代品 它就是 baidupcs-web 下载解压后就这么一个可执行文件 干净的不可思议 ...

  10. c#菜单动态合并 z

    说明 在程序中经常使用弹出菜单,并且一个窗体中可以存在多个弹出菜单.开发过MDI窗体的读者可能都知道,当MDI子窗体最大化时,子窗体和主窗体的菜单能够自动的合并.这是如何实现的呢?本例实现了将两个弹出 ...