【python】基础应用

news2024/11/16 7:50:18

python 基础

  • 变量
  • 函数
    • 函数定义
    • 函数参数说明
    • 匿名函数 lambda
  • 文件
    • 文件编码
    • 文件读取
    • 文件写入
  • 异常
    • try
    • Exception
    • else
    • finally
    • 异常的传递
  • 模块
    • 模块导入
    • 自定义python包并导入
    • 第三方包的导入
  • JSON

变量

python 中变量的定义不需要指定变量的类型,直接进行定义,系统会根据设置的变量内容自动获取改变量的数据类型:

a=1
b='hello'
c=13.14
d='d'

print(f'a 变量的值为 {a},类型为:',type(a))   
# 其中 f 表示输出的内容中存在格式化的输出数据
print(f'b 变量的值为 {b},类型为:',type(b))
print(f'c 变量的值为 {c},类型为:',type(c))
print(f'd 变量的值为 {d},类型为:',type(d))

运行结果:
在这里插入图片描述

函数

函数定义

在 python 程序中定义一个函数的基本格式为:

def 函数名(参数1,参数2,...):
	函数体
	return 返回值信息

例如,我们需要实现一个 加法函数:

def Add(x,y):
    return x+y

print("调用Add函数的结果是:")
# 调用函数: 函数名(参数列表)

print(Add(1,3))   

运行结果:
在这里插入图片描述

函数参数说明

若定义一个函数,函数的形参个数不确定,则可以传入不定长度的形参:

1:位置传递不定长:按照位置信息传入参数列表

 # 默认 args 为元组类型
def function(*args):   
    ***********

在这里插入图片描述

2:关键字传递不定长:

 # 默认 kwargs 以字典形式存储,函数实参传递时候必须是 键=值 形式传入
def function(**kwargs):  
    *********

在这里插入图片描述

当一个函数作为参数进行传递

函数作为参数传递------传递的是函数的执行逻辑

def Add(x,y):
    return x+y

def S(Add):
    result=Add(1,2)
    return result

print(S(Add))

匿名函数 lambda

lambda 传入参数:函数体(一行代码)
result = lambda[arg1[,arg2,…,argn]]:expression

定义匿名函数要求必须使用关键字 lambda ,并且匿名函数的函数体只有一行

在这里插入图片描述
在这里插入图片描述

文件

文件编码

计算机中可用编码:UTF-8 (默认使用)\ GBK \ Big5 (中文繁体)

文件读取

打开文件 open

首先需要打开文件,才能对文件内容进行相应的操作:

打开文件 : open(文件地址,打开方式,编码格式)

f=open(name,mode,encoding) 

# name 文件名,mode 打开方式 (r 只读, w 清空写入文件不存在创建 ,a 追加写文件不存在创建),encoding 编码格式 utf-8

读取文件 read

文件对象.read(num) :从文件中读取 num 字节长度内容,num 默认为读取文件全部内容
文件对象.readlines() :读取文件中全部行信息,并放入列表中
文件对象.readline() 方法:一次读取一行内容

关闭文件 close

f.close()

执行完语句块之后自动关闭文件
with open(name,mode,encoding) as f:
操作***********

练习:

# 循环读取文件
for line in f:   # 循环读取文件的每一行信息并进行输出
    print(f'每一行数据是:{line}')
# 统计某个文件中 itheima 出现的次数
# 方法一:
f=open(name,'r',encodint='UTF-8')
content=f.read()     #读取文件全部内容
count=content.count('itheima')    # 使用 count 方法进行统计
print('itheima 在文件中出现了 {count} 次')


# 方法二:
count=0;
for line in f:
    line=line.strip()   # 去除每一行之后的换行符-------输出结果为列表
    words=line.split(" ")  # 按照空格将读取到的信息划分
    for word in words:   # 遍历每一个单词来进行统计
        if word=='itheima':
            count+=1
print('itheima 在文件中出现了 {count} 次')

文件写入

w 清空式写入,文件不存在会创建

f=open(name,'w',encoding='UTF-8')  # 定义第二个参数为 w 

f.write('要写入文件的内容')

f.flush()  # 内容刷新 ,将内存中堆积的内容写入到硬盘中 
f.close()   # 关闭文件其实内置了刷新功能

a 追加写入,文件不存在会创建

f=open(name,'a',encoding='UTF-8')  # 定义第二个参数为 a
f.write('要写入文件的内容')
f.flush()
f.close()

异常

try

1、异常捕获

try: 
    可能发生异常的内容
except: 
    捕获到异常应该进行的操作

2、捕获指定的异常

try:
    可能发生异常的内容
except (异常名1,异常名2,...) as e:
    捕获到异常应该进行的操作
    

Exception

3、捕获所有异常

try:
except Exception as e: 
    print(e)

else

try:  
	可能发生异常的内容
except:  
	发生异常之后执行该部分代码
else:  
    未发生异常时候会执行

finally

不论是否捕获到异常都会执行 finally 语句部分

try:  
	可能发生异常的内容
except:  
	发生异常之后执行该部分代码
else:  
    未发生异常时候会执行
finally:
    不论是否出现异常都会执行 finally 语句

异常的传递

def func1():
    print('fun1()起始位置')
    num=1 / 0               # 异常位置
    print('fun1()结束位置')

def func2():
    print('fun2()起始位置')
    func1()               # func1() 异常传递
    print('fun2()结束位置')

def main():
    try:
        func2()
    except Exception as e:
        print(f'捕获到异常信息 {e}')

在这里插入图片描述

模块

模块导入

自定义模块

定义一个模块时间上是定义一个 .py 文件,并在文件内部编写相应的功能(函数,变量…)

import 导入的包名 --------- 表示将包中所有内容导入
from 包名 import 函数/方法 ------- 表示从一个包中导入指定的函数/方法

#  _main__ 变量:
# 表示只有当程序是直接执行的才会进入 if 语句,若是被导入的则不会进入 if 语句
if __name__ == '__main__':     
    *************

# 注意:
# 不同模块中同名的功能若都被导入同一文件,则后导入的会覆盖前边导入的同名功能


# __all__ 变量:
from 包名 import *   # 表示导入所有内容


# __all__ 变量控制导入包的范围 ------- 控制 import*
# __all__ = ['']  列表形式设置

自定义python包并导入

在 pycharm 中依次执行:
file -> new -> python package 创建一个python包,内部自动包含一个 _init_.py 文件(若删除该文件,则不能表示 python 包,而只是一个普通的 python 文件),说明创建包成功; 然后新建 python file 来定义模块;

第三方包的导入

import 包名 ------ 导入包中所有内容

例如,
我们常用的数字计算包 numpy-----------import numpy

as 为导入的包取别名

加入我们所需要的包名特别长,那么在每一次调用包信息时候都需要加上包名称会非常繁琐,此时可以使用 as 对包取别名:

import numpy as np

from 包名 import 某方法/模块

例如,
从绘图工具 pyecharts.options 包中导入 TitleOpts 模块:

from pyecharts.options import TitleOpts

JSON

JSON 一种轻量级的数据交互格式本质上是一个带有特定格式的 ”字符串“

导入 JSON 模块 import json

将 python 数据转化为 json 数据 : data=json.dumps(data)
将 json 数据转化为 python 数据: data=json.loads(data)

ps:
每天学习一点点,进步一点点~~

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

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

相关文章

五月&六月券商金工精选

✦研报目录✦ ✦简述✦ 按发布时间排序 海通证券 通往绝对收益之路(八):“固收”产品股票端的量化解决方案 发布日期:2023-05-05 关键词:固收、股票、量化策略 主要内容:本研报研究了优秀的“固收”产品…

考完PMP就可以做项目经理了?

接触过项目的自然没问题,如果是小白 0经验肯定是不能直接做项目经理的。 首先是要积攒一些经验,如果是纯小白,建议再去考一个P2(prince2)证书,这个证书主要是实操为主,可以带着你手把手去做项目&#xff0…

【C++11】lambda表达式详解

目录 1.lambda引入 2.语法 3.捕捉列表详解 [ ] 不捕获任何外部变量 [] 捕获父作用域的所有变量的值,只读不可以修改 [&]捕获父作用域的所有变量的引用,可修改捕获的变量 [val] 只捕获指定的变量值,不可以修改 [&val] 只捕获外…

【云原生系列】云计算概念与架构设计介绍

1 什么是云计算 云计算是一种基于互联网的计算模式,在这个模式下,各种计算资源(例如计算机、存储设备、网络设备、应用程序等)可以通过互联网实现共享和交付。云计算架构设计的主要目标是实现高效、可扩展、可靠、安全和经济的计算…

读者与写者问题

本篇文章我们使用C探讨一下读者与写者问题. 1. 读者与写者问题引入 读写操作是计算机中对存储区最常见的两种操作. 我们之前探讨了生产者与消费者问题, 知道了如何开启多个线程, 现在就可以直接写出读者与写者问题的最基本的代码了, 仍从最简单的情况开始--两个读者, 代码如下…

React01-React简介及环境搭建

一、SPA 单页面应用 1. 多页面应用(MPA) 一个链接对应一个页面。 优点:便于百度搜索。 缺点:请求量大。 应用:电商网站 2. 单页面应用(SPA) 应用:音乐网站 优点:…

Babylist EDI 需求详解

Babylist 是一个为准父母提供方便和灵活的婴儿注册服务的平台,帮助他们准备迎接新生儿的到来。Babylist 与各种不同的品牌和零售商合作,包括婴儿用品、玩具、衣物和其他相关产品的制造商。用户可以在 Babylist 上浏览各种不同的产品,并根据自…

9、Redis集群(cluster)

是什么 Redis集群是一个提供在多个Redis节点间共享数据的程序集,Redis集群可以支持多个master 能干嘛 Redis集群支持多个master,每个master又可以挂载多个slave 读写分离 支持数据的高可用 支持海量数据的读写存储操作 由于Cluster自带Sentinel的故障转…

UWB智能定位管理系统源码(Java+ vue+ spring boot)

智能定位管理系统技术架构:Java vue spring boot 一、系统概述 系统聚焦基于UWB(超宽带)技术的底层定位网络和定位算法,通过对定位分站、定位标签、定位引擎的硏发,实现高精度定位网络,获取高精度定位结果,支撑行业大…

爬虫入门指南(6):反爬虫与高级技巧:IP代理、User-Agent伪装、Cookie绕过登录验证及验证码识别工具

文章目录 前言IP代理与User-Agent伪装IP代理User-Agent伪装 使用Cookie绕过登录验证使用验证码识别工具未完待续... 前言 随着互联网发展,网站数据变得越来越重要。然而,为了保护其数据的安全性和唯一性,网站通常会采取反爬虫措施。本篇博客将…

一场由AIGC引发的网文变革

文 | 螳螂观察 作者 | 青月 2019年底《庆余年》第一季播出引发了全民追剧热潮,不仅实现了国内的口碑、流量双丰收,还收获了包括韩国在内的27个国家或地区海外观众的超高评价。 经过三年多的蓄力,前不久《庆余年》第二季发布了开机特辑。这…

论文解读|CVPR 2023:非刚性点云匹配的神经内嵌算法

原创 | 文 BFT机器人 01 背景 在非刚性点云匹配领域,将两个或多个形状的点云对应起来是一个具有挑战性的任务。在这个问题中,形状的变形可能会导致点云之间的几何形状和拓扑结构的差异。因此,点云匹配方法需要能够识别和建立这些非刚性变形下…

一文图解|低精度定时器原理

Linux 内核通常会使用 定时器 来做一些延时的操作,比如常用的 sleep() 系统调用就是使用定时器来实现的。 在 Linux 内核中,有两种类型的定时器:高精度定时器 与 低精度定时器。低精度定时器基于硬件的时钟中断实现的,其定时周期…

开放式蓝牙耳机推荐,高性价比的蓝牙耳机首选这些品牌

在开放式耳机的流行度越来越高的同时,新接触想入手开放式耳机的小伙伴们,面对不同样式型号的耳机,会更多的考虑舒适度还是音质?亦或者是外观呢,通过各方体验调查,我总结了几款值得大家选择的开放式耳机&…

Linux--共同访问的公共目录不允许a用户删除b用户目录或文件:粘滞位 -t

情景: ①当多个用户共享同一个目录,需要在该目录下,进行读写、创建文件 ②但是自己只能删除自己的,而不能删除别人的(w:可以互删的,但是不满足条件) 语法: chmod t 目录名 注意…

CICD集合(一):Jenkins2.3.46安装

一、安装和安装Jenkins 0.前提 因jenkins从2.357版本开始不再支持java8 2、jenkins与java版本对应查看,与jenkins下载:Redhat Jenkins Packages 3、打算使用java8,所以选择安装2.346.3-1.1 4、安装jenkins之前,安装好java8并…

前后端免费学 | 第六届字节跳动青训营报名啦

线上活动,全程免费 报名时间:2023年6月2日 - 2023年7月10日 报名地址:点我报名,暑假一起学技术呀... 前言 其实去年我就想参加青训营的,但是那时的我刚转完专业,觉得自己太菜了,单方面认为自己…

MySQL 8 group by 报错 this is incompatible with sql_mode=only_full_group_by

根据错误信息大概知道,是sql_mode参数设置为only_full_group_by的不兼容,如果select 的字段不在 group by 中,并且select 字段没有使用聚合函数(SUM,MAX等),这个sql查询是被mysql认为非法的,会报…

easyui datagrid合并单元格

表头合并 columns:[[{field:bigarea,title:大区,rowspan:2,width:$$.fillsize(0.1),align:center},{field:ProvinceName,title:省份,rowspan:2,width:$$.fillsize(0.1),align:center},{field:dbct_name,title:分拨中心,rowspan:2,width:$$.fillsize(0.1),align:center},{field…

IDEA新建Spring Boot项目

新建项目之前已经将JDK环境变量啥的都安装好了,本文只有新建。 1.打开idea,选择Create New Project。如果已经打开其他项目,点击File->New->Project,也可以打开新建的界面。 2.点左侧的Spring Initializr然后如图&#xff…