python环境、基础语法、几种常见的数据类型

news2025/1/11 14:10:38

文章目录

  • 前言
  • 一、基本知识介绍
  • 二、举例实操以及重要知识再现(列表、元组、集合、字典)

前言

一、基本知识介绍

python基础

标准库与扩展库中的对象的导入与使用:
import 模块名(as别名)
import numpy as np
from 模块名 import 对象名(as别名)
from math import sin as f
__name__属性可以控制python程序运行方式

第二章:运算符、表达式、与内置对象

python中定义变量时:
1.变量名必须以字母或者下划线为开头(但是以下划线开头有特殊意义)
2.变量名中不能有空格或者标点符号
3.不能使用关键字为变量名
4.变量名对大小写敏感

python支持复数类型的运算
python支持分数的运算:
x=Fraction(3,7) #创建分数对象

对str类型的字符串调用其encoad()方法进行编码得到bytes字节串,对bytes字节串调用其decoad()方法并指定正确的编码格式得到str字符串
‘Hello world’.encoad(‘gbk’)
_.decoad)(‘gbk’) #解码 _表示最后一次正确输出结果

python运算符与表达式:
python中一切都是对象   圆括号是明确和改变表达式运算顺序的利器  

from random import randint              #导入
a=[randint(1,100) for i in range(10)]   #包含10个1到100的随机数的列表

x=list(range(10))
import random
random.shuffle(x)         #打乱顺序
sorted(x)                 #排序

enumerate()函数用来枚举可迭代对象中的元素,返回可迭代的enumerate对象其中每个元素都是包含索引和值的元组

map()函数:
map()把一个函数依次映射到序列或迭代器对象的每个元素上,并返回一个可迭代的map对象作为结果,map对象中每个元素是原序列中元素经过函数处理过的结果,map()函数不对原序列或迭代器对象做任何修改
def myMap (lst,value):
return map(lambda item: item+value,lst)
list(myMap(range(5),8)) #相当于给列表中的每个数都加8

reduce()函数: #可以将一个接收两个参数的函数以迭代累计的方式从左到右依次作用到一个序列或迭代器对象的所有元素上,并且允许指定一个初始值
from functools import reduce
seq=list(range(1,10))
reduce(lambda x,y: x+y,seq)

reduce(operator.add,map(str,seq)) #转换成字符串再累加,结果就是字符串的拼接

range()函数: #这个函数我们经常会用到
for i in range(100,0,-1):
if i % 17 == 0:
print(i)
break

zip()函数: 就是用来把多个可迭代对象中的元素都压缩在一起,返回一个可迭代的zip对象

eval()函数: 用来计算字符串的值,有的时候也能用来实现类型转换的功能

python序列结构

几种分类方式:
1、有序序列和无序序列
2、可变序列和不可变序列

可以用负数作为索引,比如下标为-1就指最后一个元素,以此类推

列表:        list

除非必要,否则都应该从列表的尾部进行追加和删除操作,列表中的元素的类型可以不相同;;列表的功能虽然强大,但是负担比较重,所有尽量避免过多的使用列表
list()函数可以把其他类型转换为列表,但是对于将字典的转换,默认是将字典的键转换为列表,若想把元素转换就要使用items()方法明确说明,或者values()来说明

sort() #排序 reverse()将列表中所有元素逆序或者翻转

copy()函数; 返回列表的浅复制,也就是生成一个新的列表,并且把原列表吧中的所有元素的引用都复制到新列表中,如果这个列表中有可变类型的数 据,那么改变一个,另一个也会改变,而不可变类型数据就不会存在这样的问题

所对应的就是深复制,也就是队员列表中的元素进行递归,把所有的值都复制到新列表中,对嵌套的子列表不再是复制引用。相互独立
import copy
x=[1,2,[3,4]]
y=copy.deepcopy(x)
y.append(6)
不会对x中的值有所影响

列表对象支持的运算符:
+ * 都可以实现列表增加元素或者元素的重复,但是都会返回新的列表,效率很低;所以我们一般会使用+= *=来进行前面的操作,这样就属于原地操作,和append()一样都很高效
成员测试符in for i in range[2] i in [1,2,3]

内置函数对列表的操作:

切片操作: [start: end:step]
切片得到的是列表的浅复制

元组:轻量级列表   tuple

列表的功能很强大,但是负担很重,有的时候并不需要那么多功能,所以我们可以使用元组,如果元组中只有一个元素,一定要在最后增添一个逗号
元组是不可变的,支持双向索引,python对元组的访问速度比列表快很多,元组可哈希

字典:反应对应关系的映射类型      dict

字典是包含若干键、值元素的无序可变序列,所有元素放在大括号中
字典中元素的键可以是python中任意不可变数据,键不允许重复,值可以重复;字典在内部维护的哈希表使得检索速度非常快

字典中元素的访问通过键作为下标来访问对应的值,一般情况下,我们都会配合条件判断来访问字典元素,以防止异常出现

字典对象提供get()方法来返回指定键对应的值
aDict.get(‘address’,‘Not Exists.’) 当我们访问不存在的键address时就会返回Not Exists.
对字典进行遍历指的是对字典的键进行遍历,想要遍历整个元素或者遍历值需要指定
update()方法可以将另一个字典的键值全部添加到当前字典对象,若存在相同的键,则以另一个字典为准进行更新

集合:元素之间不允许重复         set

集合中只能包括不可变数据类型
s={1,2,3}
s.add{4} 元素的添加
s.update(3,4)
s={1,2,3,4} 会自动删除重复的元素

二、举例实操以及重要知识再现(列表、元组、集合、字典)

给姓名、年龄、分数赋值之后进行输出,除了最简单的方式进行输出不之外,我们也可以使用一下两种方式进行输出;一种是使用占位符,另一种比较直观,但是不能对浮点类型的数值进行控制输出小数点后的位数,所以根据需求我们可以选择更合适的输出方式,一般情况下我们会采用第二个方式,因为简单直观
在这里插入图片描述
几种常见函数:
abs求绝对值
divmod返回商和余数
pow求次方
round保留小数点后几位
几种常用的模块:
math数学模块
randow随机数
三元运算符:
在这里插入图片描述
我们可以通过最简单的print进行输出也可以用三元运算符直接进行输出
**range()**包前不包后,如果有三个数字,就依次是start、end、step

如果元组里只有一个元素,那么要在这个元素后边加逗号

\t 水平制表符
\n换行符
字符串的数据清洗:
strip:删除字符串开头和末尾的空格
lstrip:删除字符串开头的空格
rstrip:删除字符串末尾的空格
replace:字符串替换

在这里插入图片描述

字符串的分割和拼接:
split:分割
join:拼接
列表的常用方法:
追加:li.append()
在指定位置添加:li.insert()
一次追加多个元素:li.extend()
修改:我们通过重新赋值 的方式来进行修改
删除:
可以根据索引删除:li.pop()
根据值删除:li.remove()
全部删除:li.clear()
反转li.reverse()
排序:li.sort() 想要由大到小排序:li.sort(reverse=True)
拷贝:li.copy()

元组的常用方法:
元组不能修改

is与==的区别
==只会判断类型和值
is不但会判断类型和值,也会判断内存地址

深拷贝和浅拷贝:

浅拷贝;
ni=[1,2,3]
n2=ni.copy()
这就是浅拷贝,对原来进行修改,不会对拷贝的有影响
深拷贝:
如果有列表嵌套或者列表中有可变数据类型的时候,一定要选择深拷贝
浅拷贝只会对地址进行拷贝,深拷贝会对地址以及对应的值一起进行拷贝

集合:
集合的元素必须是不可变数据类型
空集合不能使用{},而要使用set()
集合是无序不重复的,只支持成员操作符
add:添加单个元素
update:添加多个元素
remove:删除元素,如果存在正常删除,不存在就会报错
discard:删除元素,不存在不会报错
pop:随机删除,集合为空就会报错
frozenset:不可变集合,不能进行增删改查

字典:
像集合一样,字典也只支持成员操作符,但是只会判断是否为key值的成员
d.get:查看key对应的value值,存在则返回,不存在则返回默认值,未自定义为None,定义为默认值
d.setdefault:key存在则不做任何修改,若不存在,则相当于添加
defaultdict:
d=defaultdict(list)
d[‘allow_users’].append(‘westos’)
d[‘deny_users’].extend([‘user1’,‘user2’])

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

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

相关文章

程序人生:快来一起学习软件测试,一起月薪过万(测试理论基础学习)

测试基础 为什么要有测试呢?现在软件已经和人的生活息息相关了,所以保证软件的稳定很重要。但是所有开发出来的软件都是有缺陷的。包括代码错误,逻辑错误,设计不合理等。 测试的目的 测试的目的主要有四个点 1找到软件缺陷 2…

Flink SQL增量查询Hudi表

前言 前面总结了Spark SQL增量查询Hudi表和Hive增量查询Hudi表。最近项目上也有Flink SQL增量查询Hudi表的需求,正好学习总结一下。 官网文档 地址:https://hudi.apache.org/cn/docs/querying_data#incremental-query 参数 read.start-commit 增量查…

WWW2022 | 基于领域增强的图对比协同过滤方法+代码实践

嘿,记得给“机器学习与推荐算法”添加星标今天跟大家分享一篇将对比学习应用于图协同过滤方法的文章,该论文发表于WWW2022会议上。其主要思想是在图神经网络协同过滤方法上应用了两种领域类型的对比学习方法,分别是显式的结构领域和隐式的语义…

TGK-Planner-前后端路径规划(基于梯度的后端无约束优化)

高速移动无人机的在线路径规划一直是学界当前研究的难点,引起了大量机器人行业的研究人员与工程师的关注。然而无人机的计算资源有限,要在短时间内规划出一条安全可执行的路径,这就要求无人机的运动规划算法必须轻型而有效。本文将介绍一种无…

electron-vue中报错 Cannot use import statement outside a module解决方案(亲测有效!!!)

错误: Cannot use import statement outside a module(不能在模块之外使用导入语句)。 原因: 安装的某个依赖包里使用了import语法,因为我们打包输出的是commonjs规范,所以不识别import语法而导致报错。 可以从 .electron-vue/w…

PrimoBurnerSDK蓝光刻录工具开发工具包

PrimoBurnerSDK蓝光刻录工具开发工具包 PrimoBurnerSDK是一个CD、DVD和蓝光刻录工具开发工具包。它还提供了一个全面灵活的API,用于快速轻松地实现各种燃烧/翻录替代方案。 PrimoBurner SDK for.NET的强大功能: 自2003年以来一直在发展的广泛使用的老式发…

比机器人还智能的数字孪生地下停车场监管系统!

现在的停车场管理大多采用人工或智能收费系统,两种方式都有一个弊端就是无法直接知晓停车场内部信息。 车驶入停车场只能自行寻找停车位,工作人员也只有走进停车场才能知晓停车场内部情况,无可避免造成很多麻烦。 停车场智慧监管系统结合数…

期货开户交易操作技巧

期货交易的时候需要有一些操作技巧,以及要注意一些操作上常见的错误。 个人建议刚刚开始交易的投资者期货交易的投资者,一定要多看慢做,首先要摒弃做这个会一夜暴富的想法。抱着个想法来的往往都会折戟沉沙,一去不复返了。所以我…

基于springboot+mybatis+mysql+vue中学生成绩管理系统

基于springbootmybatismysqlvue中学生成绩管理系统一、系统介绍二、功能展示1.登陆2.用户管理(管理员)3.班主任信息管理(管理员)4.教师信息管理(管理员、班主任)5.学生信息管理(管理员)6.成绩信息管理(管理员、班主任、…

一个人,仅30天!开发一款3D竞技足球游戏!他究竟经历了些什么?

今天,晓衡向大家推荐一款Coco Store 优质 3D足球竞技游戏 资源《足球快斗》玩法介绍:游戏为 7V7 足球竞技类玩法。玩家控制本队的一个球员(脚下高亮圆圈显示的是玩家),其他球员和守门员为电脑AI控制,期间可…

Jvm上如何运行其他语言?JSR223规范最详细讲解

一 在Java的平台里,其实是可以执行其他的语言的。包括且不仅限于jvm发展出来的语言。 有的同学可能会说,在java项目里执行其他语言,这不吃饱了撑着么,java体系那么庞大,各种工具一应俱全,放着好好的java不…

责任链模式在复杂数据处理场景中的实战

相信大家在日常的开发中都遇到过复杂数据处理和复杂数据校验的场景,本文从一线开发者的角度,分享了责任链模式在这种复杂数据处理场景下的实战案例,此外,作者在普通责任链模式的基础上进行了升级改造,可以适配更加复杂…

34_DAC原理及数模转换实验

目录 数模转换原理 DAC模块框图 事件选择控制数字模拟转换 DAC转换 DAC数据格式 选择DAC触发 DAC输出电压计算 硬件连接 DAC配置步骤 实验源码 数模转换原理 STM32的DAC模块(数字/模拟转换模块)是12位数字输入,电压输出型的DAC。DAC可以配置为8位或12位模式,也可以与…

linux安装nginx

1.nginx官网 http://nginx.org/en/download.html 下载安装包,如图所示下载nginx-1.23.2,并上传到指定目录:/usr/local/src/nginx 2.解压 tar -zxvf nginx-1.23.2.tar.gz3.安装nginx, cd /usr/local/src/nginx/nginx-1.23.2 该目录…

Titanic 泰坦尼克数据集 特诊工程 机器学习建模

以下内容为讲课时使用到的泰坦尼克数据集分析、建模过程,整体比较完整,分享出来,希望能帮助大家。部分内容由于版本问题,可能无法顺利运行。 Table of Contents 1 经典又有趣的Titanic问题1.1 目标1.2 解决方法1.3 项目目的2…

Vector-常用CAN工具 - CANoe入门到精通_03

NetWork Node 前面已经介绍了CANoe的基本情况、硬件环境搭建、CANoe软件环境配置,今天我们就来聊一下NetWork Node,在我们的测试工作中,大部分情况我们默认CANoe作为一个Client端,但是有些情况,我们需要实时监测被测件…

Akka 学习(四)Remote Actor

目录一 介绍1.1 Remote Actor1.2 适用场景1.3 踩坑点二 实战2.1 需求2.2 Java 版本2.2.1 效果图2.2.2 实体类2.2.3 服务端Actor 处理2.2.4 服务端配置文件2.2.5 客服端Actor处理2.2.6 客服端配置文件2.2.7 测试2.3 Scala 版本2.3.1 效果2.2.3 服务端Actor处理2.3.4 客户端Actor…

使用 Excel 数据透视表深入研究数据分析

问题 1(文章数据在底部) 为美国选民案例研究创建一个数据透视表,并用它来回答以下问题: A) 有多少个州的选民人口百分比低于 55%?哪些州? 答:有5个州的选民人数低于55%,分别是得克萨斯州、阿肯色州、俄克拉荷马州、夏威夷州和西弗吉尼亚州。 步骤:根据以下结果,创建…

基于jsp+java+ssm的社会保险信息管理系统-计算机毕业设计

项目介绍 课题研究的基本内容及预期目标或成果 用户注册与登录功能,在单位注册功能中有申请管理功能,填写具体信息。 系统管理员: 1)个人密码修改:实现了管理员用户密码信息的修改。 2)参保人员管理&a…