python-函数、文件、异常、模块

news2024/11/16 3:18:48

目录

函数

返回值

函数传参

位置参数

关键字传参

缺省参数

不定长参数

匿名函数

 文件操作

open 函数

异常

模块

导入模块


函数

返回值

return语句[表达式]退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None

#定义函数
def add(x,y):
    return  x+y

print(add(3,5)) #函数调用

函数执行到了retrun语句,就表示函数结束了,不一样的是,python支持return多个数据

#计算x,y,z三个数据的平方
def fun(x,y,z):
    return x**2,y**2,z**2

#使用三个变量 接收函数返回的三个结果
x,y,z=fun(8,3,4)

print("x=",{x},"y=",{y},"z=",{z})    #x= {64} y= {9} z= {16}

函数传参

  • 位置参数
  • 关键字参数
  • 不定长参数
  • 缺省参数

位置参数

根据函数调用时的参数位置,默认对应传参

fun(8,3,4)

默认函数形参中:第一个参数=8,第二个参数=3,第三个参数=4

关键字传参

函数调用使用关键字参数来确定传入的参数值。

def fun(x,y,z):
    return x**2,y**2,z**2

x,y,z=fun(x=2,y=4,z=8)
print("x=",{x},"y=",{y},"z=",{z}) 

缺省参数

设置形参默认值

要求:缺省参数是放在了形参的最后

#给age设置了默认值
def printf(name,age=18):
    print("name=",{name},"age=", {age})

#当传入age,形参值会被覆盖
printf("张三",20)    # 结果  name= {'张三'} age= {20}

#不传入age,会使用默认值
printf("李四")  #结果  name= {'李四'} age= {18}

不定长参数

不确定形参的多少,可以输入多个数据

  • 位置传参

默认使用*args来接收传入的实参,将数据以元组的形式存放

#位置传参 不定长参数
def fun(*agrs):
    print(type(agrs))
    print(agrs)

fun(1,2,3,"张三","23456")

  • 关键字传参

默认使用**kwargs来接收传入的实参,将数据以字典的形式存放

def fun (**kwargs):
  print(type(kwargs))
  print(kwargs)

fun(name="张三",password=123)

匿名函数

python 使用 lambda 来创建匿名函数。

  • lambda只是一个表达式,函数体比def简单很多。
  • lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
  • lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。

#定义函数 实现相加功能
#sum为函数名  x,y为变量  x+y为返回结果
sum=lambda  x,y : x+y
# 调用sum函数
print( "相加后的值为 : ", sum( 10, 20 ))

 文件操作

1、打开文件

open 函数

先用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写。

语法:

file object = open(file_name [, access_mode][, encoding])

各个参数的细节如下:

  • file_name:file_name变量是一个包含了你要访问的文件名称的字符串值。
  • access_mode:access_mode决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。
  • encoding:指定文件的编码方式,推荐utf-8
rb+

以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。

w

打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件

r+

打开一个文件用于读写。文件指针将会放在文件的开头

w+

打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

a

打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

r

以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

如果文件不存在,报错

 1、文件读取


#1、以只读方式打开文件
f=open("C:\\Users\\30283\\Desktop\\练习.txt","r",encoding="utf-8")   #f变量 是文件类型的对象
print("读取文件信息",{f.read()})  #f.read() 读取文件信息
print("读取文件的前10个字节",{f.read(10)})  #f.read() 读取文件信息的前面10个字节
print("------------")
f.close() #关闭文件

f=open("C:\\Users\\30283\\Desktop\\练习.txt","r",encoding="utf-8")  # 重新打开文件 防止文件指针已经移动到了末尾,导致读不出来数据
lines =f.readlines() #读取文件的所有内容 封装成为列表
print(type(lines))
print(lines)    #如果不重新打开文件,这里为空 因为上一次读取之后,文件指针移动到了结尾,这时从文件指针后继续读取,肯定读取不到信息
f.close() #关闭文件
print("----------")

f=open("C:\\Users\\30283\\Desktop\\练习.txt","r",encoding="utf-8")
line=f.readline() #一行一行的读取数据
while line:
    print(line)
    line=f.readline()
f.close() #关闭文件


2、文件内容写入

f.write():将内容写入程序的内存空间(也称为缓冲区)(不直接写入文件,是为了避免重复的读取硬盘,降低性能)

f.flush():将缓冲区的内容写入文件

f.close()释放文件,内置了f.flush(),关闭的时候会进行内容刷新


#w方式:当文件不存在,创建文件 文件存在,删除之前的所有内容 重新写入
f = open("C:\\Users\\30283\\Desktop\\写入.txt", "w", encoding="utf-8")
f.write("你好\n")  #内容写入缓冲区
f.flush()         #数据写入文件
f.close()

#结果 创建文件 并写入内容 你好

#a方式:当文件不存在,创建文件 文件存在,追加写入
f = open("C:\\Users\\30283\\Desktop\\写入.txt", "a", encoding="utf-8")
f.write("hello\n")  #内容写入缓冲区
f.flush()         #数据写入文件
f.close()

#结果 内容追加 你好 hello

异常

异常简单来说就是bug

比如说我们除0操作,就会抛出除0异常

 如果遇到了异常,程序就会终止运行,我们可以通过捕捉异常,在异常发生时进行其余操作

捕捉异常的基本语法:

try:

可能出现异常的代码

except:

出现异常之后处理的代码

finally:

不论是否有异常,一定会执行的代码

#计算一个数的倒数
while(True):
    num=input("请输入整数数字作为分母\n")
    try:
        print(1/int(num))
        break
    except  :
        print("数据输入格式错误,请重新输入")

 当输入0时,除0异常,异常被捕捉,进入except语句; 当输入0.4时,因为int()不能将带有小数点的字符串转化为整数类型,数据转化异常,异常被捕捉,进入except语句。

捕捉特定异常

while(True):
    num=input("请输入整数数字作为分母\n")
    try:
        print(1/int(num))
        break
    except ZeroDivisionError as e:  #只会捕捉ZeroDivisionError的异常,其余异常不会捕捉 e会存储报错信息
        print(e)
        print("数据输入格式错误,请重新输入")

 Exception类是所有异常的父类,可以捕捉捕捉所有异常

finally语句

finally语句的代码,无论发没发生异常都会被执行

模块

Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。我们可以通过引入模块,调用这个模块内部的方法,从而不需要自己实现

导入模块

不管你执行了多少次import,一个模块都只会被导入一次。这样可以防止导入模块被一遍又一遍地执行。

基本语法

from [模块名] import [模块|类|变量|函数] as 别名

模块内容调用语法

模块名.功能名()

#比如说 存在math模块,包含一些数学操作 我们可以借助这个模块,帮助我们快速实现功能

#1、导入模块
import math
#引用模块内的函数  开平方
print(math.sqrt(4))

from…import 语句

Python 的 from 语句让你从模块中导入一个指定的部分到当前命名空间中。语法如下:

 from 模块名 import 功能名

from math import sqrt
print(sqrt(4))

 这个声明不会把整个 math 模块导入到当前的命名空间中,它只会将 math 里的 sqrt 单个引入到执行这个声明的文件。

from…import* 语句

把一个模块的所有内容全都导入到当前的命名空间,只需使用如下声明:

from 模块名 import *

例如我们想一次性引入 math 模块中所有的东西,语句如下:

from math import *
from math import *
print(sqrt(4)

这个语句和import math都可以导入math模块的所有内容,就是函数调用时语法有区别

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/97060.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu系统装机流程(显卡驱动、cuda、cudnn、搜狗输入法、anaconda、pycharm)

整体流程一、安装Ubuntu18.04系统二、安装显卡驱动三、安装Cuda四、安装Cudnn五、安装搜狗输入法六、安装Anaconda七、安装Pycharm社区版一、安装Ubuntu18.04系统 (1)实现用软碟通做好一个装有Ubuntu18.04的系统盘。 (2)打开电脑…

Jenkins自动发布到Docker部署服务器把Jar包打包成镜像并启动容器

《jenkins自动化发布到服务器并自动运行》 第1种方法:使用外部Jar包完成自动化部署(简单方便),正式环境更新jar包时,备份一下旧的的jar包即可。 修改jenkins项目配置 Pre Steps 构建前清除旧的jar包,然后…

计算机网络原理第2章 物理层

目录 2.1 物理层的基本概念 2.2.1 数据通信系统的模型 2.2.2 有关信号的几个基本概念 1.通信 2.调制 3.编码 2.2.3 信道的极限容量 1.信道能够通过的频率范围(奈氏准则) 2. 信噪比(香农公式) 3.奈氏准则与香农公式的比…

Linux操作系统CentOS7安装mysql5.7.x

一、下载mysql5.7.x安装包 🌈 MySQL官方下载:https://dev.mysql.com/downloads/mysql/5.7.html 注意,需要在Windows上解压之后,会有两个压缩包,将其中一个上传 二、将mysql5.7.x安装包上传到Linux服务器 使用 Xftp 上传…

NeurIPS 2022 Spotlight | SNAKE:首个同时进行隐式重建和三维特征点提取的方法

原文链接:https://www.techbeat.net/article-info?id4361 作者:钟程亮 3D特征点检测在物体识别、场景重建等任务中有着重要作用。然而由于点云数据采样的稀疏性,从中检测出3D特征点是一项很有挑战性的任务。虽然原始点云的获取方式有很多种&…

Kafka基础_1

Kafka系列 注:大家觉得博客好的话,别忘了点赞收藏呀,本人每周都会更新关于人工智能和大数据相关的内容,内容多为原创,Python Java Scala SQL 代码,CV NLP 推荐系统等,Spark Flink Kafka Hbase …

一文讲懂泛型

Java高级Java高级语言特性一. 泛型1. 1 为什么我们需要泛型1. 2 泛型类和泛型接口的定义1. 3 泛型方法1. 4 限定类型变量1. 5 泛型中的约束和局限性1. 6 泛型中的继承规则1. 7 通配符类型1.7.1 问题抛出,为啥需要通配符?1.7.2 ? extends X1.7…

RocketMq的基本概念

🎶 文章简介:RocketMq的基本概念 💡 创作目的:关于RocketMq的基本概念的大致介绍 ☀️ 今日天气:阳光明媚。 📝 每日一言:冬有冬的来意,雪有雪的秘密。 文章目录🐶 1、Ro…

MySQL~DQL查询数据

4、DQL查询数据(最重点) 4.1、DQL (Data Query LANGUAGE:数据查询语言) 所有的查询操作都用它 Select简单的查询,复杂的查询它都能做~数据库中最核心的语言,最重要的语句使用频率最高 SELEC…

Kafka 集群部署与测试

安装Kafka(需要JDK和Zookeeper): 下载Kafka安装包,并解压至node01节点中的/opt/apps目录下。修改配置文件。在server.properties配置文件中指定broker编号、Kafka运行日志存放的路径、指定Zookeeper地址和本地IP。添加环境变量。在/etc/prof…

[ vulhub漏洞复现篇 ] GhostScript 沙箱绕过(任意命令执行)漏洞CVE-2018-19475

🍬 博主介绍 👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…

【IDEA】# 快速生成logger、通过Maven的profile配置实现环境的快速切换、常用基础设置

1. 快速生成logger 打开 Settings,找到 Editor 目录下的 Live Templates 选中 Java,点击右侧的加号,创建一个新的模板 在创建模板的相关位置,填上对应的值 Abbreviation:触发的关键字(此处我使用的是 l…

Postman进阶篇(十二)-在脚本中使用pm对象访问接口响应数据(pm.response.*)

在之前的文章中介绍过postman中的两个脚本——pre-request script或test script,在这两个脚本中都有使用到pm对象。(pre-request script详细介绍、Test script详细介绍)pm对象是在postman的脚本中非常重要,也是十分常用的方法。本…

SpringCloud学习笔记 - Nacos配置中心搭建 - Nacos Config

Nacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持。使用 Spring Cloud Alibaba Nacos Config,您可以在 Nacos Server 集中管理你 Spring Cloud 应用的外部属性配置。 Spring Cloud Alibaba Nac…

Volo - Rust gRPC 框架入门

一、参考资料 Volo-GitHub Volo-Overview 二、开发环境搭建 1、安装脚手架 # 安装 volo-cli cargo install volo-cli # 验证安装 volo help 2、编写 IDL # 文件 volo_demo.protosyntax "proto3"; package volo.demo;message Item {int64 id 1;string title …

React学习26(react-redux优化 工作使用)

项目结构 优化说明 1&#xff09;容器组件和UI组件混合成一个文件 2&#xff09;无需自己给容器传递store&#xff0c;在index.js入口文件给包裹一个Provider <Provider store {store}><App/> </Provider> 3&#xff09;使用了react-redux后也不用自己在…

Python入门教程:基本运算符

1.运算符 计算机可以进行的运算有很多种&#xff0c;可不只加减乘除这么简单&#xff0c;运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算&#xff0c;今天我们暂只学习算数运算、比较运算、逻辑运算、赋值运算、成员运算 2.算数运算 …

数据聚合、数据同步

文章目录数据聚合Bucket聚合语法聚合结果排序限定聚合范围Metric聚合语法RestAPI实现聚合数据同步发送MQ消息接收MQ消息数据聚合 Bucket聚合语法 GET /hotel/_search {"size": 0, // 设置size为0&#xff0c;结果中 不包含文档&#xff0c;只包含聚合结果~"…

Spark-内核(集群管理器、通讯架构、任务调度机制、Shuffle、内存管理)

文章目录Spark内核Spark部署模式的集群管理器YARN模式运行机制Standalone模式运行机制Spark通讯架构通信架构概述通讯架构解析Spark任务调度机制任务调度概述Stage级调度Spark Task级调度调度策略本地化调度失败重试与黑名单机制Spark Shuffle解析ShuffleMapStage与ResultStage…

SpringCloud微服务之Zuul网关

SpringCloud微服务之Zuul网关 家庭生活中经常有这样的感悟&#xff0c;家中的财政大权在老婆手里&#xff0c;想要花个小钱买个冰棍&#xff0c;得跟老婆请示&#xff0c;想要出个远门看看北京猿人&#xff0c;得跟老婆请示&#xff0c;想不要脸面去个夜店看看别的妞好在哪里&…