python的数据类型和变量

python的数据类型和变量

变量

变量使用变量名来表示, 变量名由字母、下划线和数字组成,首字母不能是数字

na = 1
An = 1

变量是内存空间的引用,所以变量可以指向任何对象
所以python的=是左边变量指向了右边对象的内存

x = 1
y = 'hello'
x = y
y = 'world'
print(x)
print(y)

常量

常量不可变,一旦定义就不能改变

PI = 3.1415926

由于python中没有常量,所以使用全大写字母表示

简单的加减乘除

print(1 + 2)
print(1 - 2)
print(1 * 2)
print(10 / 3)
print(10 // 3)  # python独有的 地板除:结果只取整数
print(10 % 3)

数据类型

1. 整数

整数有两种表达形式 : 十进制和十六进制

a = 1
b = 100
c = 0
d = 0x64

便捷的分隔方式: 目的是为了让很大的数能够更加容易阅读

a1 = 1_000_000

2. 浮点数

浮点数就是小数,使用科学计数法表示,所以小数点可变
所以浮点数也有两种写法

fa= 1.23
fb = 1.23e0

虽然没有大小限制,但是超过范围就会表示成 inf

3. 字符串

单引号双引号都可以表示字符串
如果字符串内部有 ' ",则需要 \转义

sa = 'hello "wor\'l\'d" '

r'' 表示原始字符串,不会进行转义

sb = r'helo world'
sb = r'helo world'

'''''' 多行字符串

sb2 = r'''helo 
\'world'''
sb3 = '''helo 
\'world''
编码

ord()获取字符的整数编码
chr()获取整数编码对应的字符
对于十六进制的字符串(对于unicode),可以用\u前缀
对于bytes类型 b''
Unicode的str通过 encode()可以编码为指定字符集的bytes流
bytes类型通过 decode()可以解码为指定字符集的str

print(ord('a'))
print(chr(97))
print(b'ABV')
print('ABV'.encode('utf-8'))
print(b'ABV'.decode('utf-8'))
format

和C一样, 使用%

print('%s %d' % ('hello', 1))
占位符替换内容
%d整数
%f浮点数
%s字符串
%x十六进制整数

也可以使用format()

print('Hello, {0}'.format('world'))

4. 布尔值

只有 TrueFalse,python的布尔值要大写~!

与布尔值相关的运算:

  • 与: and
  • 或: or
  • 非: not
ba = True and False
bb = True or False
bc = not True

5. 空值

空值是python中的特殊值。None

6. list

列表,可以存放任意类型的对象

  • 是一种有序的集合
  • 可以随时添加和删除其中的元素。
  • 就是数组
lst = ['C++', 'C#', 'java']
ld = [1, 2.0, 'a', None]
len()

获取长度

len(lst)
len(ld)
访问元素

索引从0开始,[0, len)
索引越界会报 IndexError

print(lst[1])
print(ld[0])
# print(ld[4])  # IndexError: list index out of range

反向访问,从-1开始,访问的是最后一个元素,[-1, -(len+1))
索引越界也会报 IndexError

print(ld[-1])
insert()

插入到指定的位置

ld.insert(1, 'hello') # 在 索引1的位置插入 hello
append()

追加元素到末尾,相当于push_back

ld.append('heihei')
pop()

删除末尾元素

ld.pop()

删除指定位置的元素

ld.pop(1)   # 删除索引为1的元素

7. tuple

元组,和列表类似,不同之处在于: 元组是不可变的

t = (1, 2.0, 'a', None)
t = ()      # 定义一个空的tuple
t= (1, )    # 定义只有1个元素的tuple

灵活点写法:

t = ('a', 'b', ['c', 'd'])
t[2][0] = 'e'
t[2][1] = 'f'

这一点更类似于C++中的*const,指针本身不能改变,但是指针指向的内容可以改变。

8. dict

python版本的 std::map,key-value存储

d = {'a':1, 'b':2}
print(d['a']) 
get

get()方法返回指定键对应的值,如果不存在则返回None

更新dict

可以使用 update()setdefault() 来更新dict

pop

删除指定的key-value

9. set

和C++类似,是一种无序不重复的集合,里面只保留key

创建set

需要塞入一个list, 重复元素自动过滤

s = set([1, 2, 3])
add

添加元素

remove

删除元素

交并集运算

&|

s1 = set([1, 2, 3])
s2 = set([2, 3, 4])
print(s1 & s2) # {2, 3}
print(s1 | s2) # {1, 2, 3, 4}

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

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

相关文章

c++高级篇(一) —— 初识Linux下的进程控制

linux的信号 信号的概念 在Linux中,信号是一种用于进程间通信和处理异步事件的机制,用于进程之间相互传递消息和通知进程发生了事件,但是,它不能给进程传递任何数据。 信号产生的原因有很多种,在shell中&#xff0c…

每日两题 / 437. 路径总和 III 105. 从前序与中序遍历序列构造二叉树(LeetCode热题100)

437. 路径总和 III - 力扣(LeetCode) 前序遍历时,维护当前路径(根节点开始)的路径和,同时记录路径上每个节点的路径和 假设当前路径和为cur,那么ans 路径和(cur - target)的出现次数 /*** D…

fastjson_1.2.24和Shiro(CVE-2016-4437)漏洞复现

文章目录 一、fastjson 1.2.24远程命令执行漏洞复现二、shiro反序列化漏洞(CVE-2016-4437)1、Shiro漏洞原理2、手工验证漏洞3、使用ShiroAttack2 一、fastjson 1.2.24远程命令执行漏洞复现 配置环境:本机java 8环境 kali操作系统(java8) c…

webapi路由寻址机制

路由匹配的原则 1、启动 Application_Start 文件夹中有个WebApiConfig 会把路由规则写入一个容器 2、客户端请求时: 请求会去容器匹配,先找到控制器(找到满足的,就转下一步了),然后找Action,we…

被动防护不如主动出击

自网络的诞生以来,攻击威胁事件不断涌现,网络攻防对抗已然成为信息时代背景下的一场无硝烟的战争。然而,传统的网络防御技术,如防火墙和入侵检测技术,往往局限于一种被动的敌暗我明的防御模式,面对攻击者无…

第四届辽宁省大学生程序设计竞赛

比赛经历:2024.5.14简单vp了一个小时只写出了签到题4个然后跑路了 补题:感觉其他题有点太抽象了主要补了一题,在区间问题中数据结构的使用 比赛链接[点我即可] 目录 A.欢迎来到辽宁省赛 B.胜率 F.隔板与水槽 H.取石子 L.区间与绝对值 …

NMACDR:基于邻居交互增强和多头注意力机制的跨域推荐模型

基于邻居交互增强和多头注意力机制的跨域推荐模型 湖北民族大学学报-孙克雷、汪盈盈-2023 思路 针对基于映射的跨域推荐模型没有充分关注源域中数据稀疏的用户,导致用户偏好的迁移效率降低的问题,提出本文。 首先,利用邻居用户的交互来增强源域中数据稀疏用户的交互序列,…

RS422一主多从MAX3490

RS422一主多从MAX3490 最近项目用到了RS422一主多从,一个主机4个从机。芯片用的MAX3490,几经折腾,最终只能从一拖4改为一拖2。 主机发送端,从机4个接收端都是正常的,没有问题。波形非常完美,没有太大变形 …

回溯算法(Backtracking Algorithm)

回溯算法(Backtracking Algorithm)是一种试探性的解决问题方法,主要用于解决约束满足问题。这类问题通常存在多个可能的解,且解的空间可以被形式化地表示出来。回溯算法通过逐步构造候选解并检验其合法性的方式来探索解空间&#…

2024制造行业面临的数字挑战

1、市场环境变化频繁 受国际关系、疫情爆发等意外事件影响,需求端和供应端都充满了不确定性,数据信息的传递和透明就显得尤为重要。 2、产能原料浪费严重 过程管控和数据传递的缺失和不及时导致工厂生产现场异常频发,质量水平低下以及生产产…

uni-segmented-control插件使用

dcloud插件市场 前端/uniapp 1.HBuildX打开目标项目 2.进入dcloud插件市场下载目标插件 3.看到如下提示(已经可以在目标项目中使用插件啦) 4.项目正式使用

分享一些人生道理,希望能对大家有所帮助!

1. 别总想出风头,炫耀就是深渊,贪心就是毁灭,人性的恶一旦被激发,后果不堪设想。 2. 戒取怨之言:不要说招人怨恨的话,播下使人怨恨的种子。 3. 学会感恩,因为感恩能够让你更加幸福。 4. 玉碎不能…

自动驾驶占据感知的综述:信息融合视角

24年5月香港理工的论文“A Survey on Occupancy Perception for Autonomous Driving: The Information Fusion Perspective“。 3D 占据感知技术旨在观察和理解自动驾驶车辆的密集 3D 环境。该技术凭借其全面的感知能力,正在成为自动驾驶感知系统的发展趋势&#x…

JSPfilters过滤技术

1.创建动态web项目 2.创建filters的文件 3.创建主页面 4.配置xml项目 总结构 主页面代码 <% page language"java" contentType"text/html; charsetUTF-8"pageEncoding"UTF-8"%><!DOCTYPE html><html><head><meta cha…

linux系统配置之单一网卡配置多个不同网段IP(centos)

linux系统配置之单一网卡配置多个不同网段IP&#xff08;centos&#xff09; 1、用root权限的用户登录CENTOS&#xff0c;进入network-scripts文件夹下&#xff08;本步骤可以省略&#xff0c;与二步骤一起完成&#xff09;&#xff1a; shell命令&#xff1a;cd /ect/syscon…

力扣刷题--数组--第五天

昨天做了几道关于双指针求解的算法题&#xff0c;今天继续看相关的题目。 844. 比较含退格的字符串 给定 s 和 t 两个字符串&#xff0c;当它们分别被输入到空白的文本编辑器后&#xff0c;如果两者相等&#xff0c;返回 true 。# 代表退格字符。   注意&#xff1a;如果对空…

idea2023.3.2版本全局设置maven地址

idea每次新建项目都默认使用了一个user目录下的地址&#xff0c;而不是自己安装的maven地址&#xff0c;每次创建项目后&#xff0c;都要重新从settings中设置一下maven地址。 可以全局修改&#xff1a;首先在File-->Close Project回到idea最开始的界面 然后在Customize里点…

C++语法|深入理解 new 、delete

在开发过程中&#xff0c;非常重要的语法就有我们new和delete&#xff0c;周所周知在C中最为强大的能力就是对内存的控制&#xff0c;所以我们再怎么强调new和delete都不为过 文章目录 1.new和delete基本语法new和malloc的区别是什么&#xff1f;(1)开辟单个元素的内存差别(2)开…

火遍全网的“当当狸智能激光雕刻机L1” 让创意梦想分分钟实现

当当狸首款“桌面级”智能激光雕刻机来袭&#xff0c;千万别错过。 龙年伊始&#xff0c;当当狸就迎来了新品首发——智能激光雕刻机L1。 话不多说&#xff0c;赶快来看~~ 当当狸这款智能激光雕刻机造型美观&#xff0c;设计时尚&#xff0c;堪称激光雕刻机界的颜值天花板~~ …

类型的转换

首先我们要了解java中的数据类型转换是指将一种数据类型转换成另一种数据类型的过程。 什么时候会用到&#xff1f;我觉得两种情况会用到 等号左右两边类型不一致&#xff08;一般发生在赋值时&#xff09;不同类型的数据参与运算&#xff08;一般发生在计算时&#xff09; 转…