Python入门学习——Day2-变量和数据类型
一、Python 变量
在Python中,变量用于保存数据,方便程序对数据的处理和操作。下面是关于Python变量的一些重要概念:
变量命名规则:
- 变量名由字母、数字和下划线组成。
- 变量名可以以字母或下划线开头,但不能以数字开头。
- 变量名区分大小写,例如"age"和"Age"是不同的变量。
- 变量名应具有描述性,有助于代码的可读性。
变量的赋值: 在Python中,变量的赋值通过使用等号(=)进行。
name = "Alice"
age = 25
变量类型推导: Python是一种动态类型语言,不需要在变量声明时指定变量类型。变量的类型会根据赋给它的值自动推导出来。
name = "Alice" # 字符串类型
age = 25 # 整数类型
salary = 1000.50 # 浮点数类型
is_student = True # 布尔类型
变量的重新赋值: 在Python中,变量的值可以被重新赋值。当为变量赋予新值时,它会丢失之前的值,并被新值替代。
name = "Alice"
name = "Bob" # 变量"n"的值从"Alice"被重新赋值为"Bob"
变量的多重赋值: Python允许使用多重赋值的方式同时给多个变量赋值。
x = y = z = 0 # 将变量"x"、"y"和"z"同时赋值为0
a, b, c = 1, 2, 3 # 将变量"a"、"b"、"c"分别赋值为1、2、3
变量的删除: 在Python中,可以使用del关键字来删除一个变量。
x = 10
del x # 删除变量"x"
Python中的变量是动态的,可以根据需要赋予不同的值。变量的使用使得程序更具灵活性和可扩展性。
二、Python 数据类型
Python 标准数据类型:
Python3 中有六个标准的数据类型:
1. Number(数字)
2. String(字符串)
3. List(列表)
4. Tuple(元组)
5. Set(集合)
6. Dictionary(字典)
Python3 的六个标准数据类型中:
不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组)
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
这里我就简单介绍前面两个:
1. Number(数字):
Python3 支持 int、float、bool、complex(复数)。
在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。
像大多数语言一样,数值类型的赋值和计算都是很直观的。
内置的 type() 函数可以用来查询变量所指的对象类型。
a, b, c, d = 10, 3.1415926, False, 20+3j
...print(type(a),type(b),type(c),type(d))
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>
2. String(字符串):
电子计算机或无线电通信中字母、数字和各种符号的统称。由数字、字母、下划线组成的一串字符。
python中字符串的定义:
在引号内按照从左到右的顺序依次包含一个个字符,引号可以是单引号、双引号、三引号,如:
name = '大海'name1 = "大海1"info = '''在苍茫的大海上
狂风.....
'''
字符串格式化输出:
程序中经常会有这样场景:要求用户输入信息,然后打印成固定的格式,比如要求用户输入用户名和年龄,然后打印如下格式:My name is xxx,my age is xxx.这就用到了占位符,如:%s、%d。%s %s占位符:
# %s 占位符 可以接受字符和数字 全能
name = input('输入名字')
# 一个值的话直接放到%后面
print('My name is %s'%name)
%d占位符:
# %d只能接受数字 有局限性
# 这样只能输入数字了
age = input('输入年龄')
age = int(age)
print(type(age))
print('my age is %s'%age)
多个占位符的使用:
name = input('输入名字')
age = input('输入年龄')
# 多个值的话直接放到%后面要有括号
print('My name is %s,my age is %s'%(name,age))
# 错误演示 输入的是一个字符串 %d无法接收
# print('My name is %d,my age is %d'%(name,age))
简写:
name = input('输入名字')
age = input('输入年龄')
# f'其他字符{变量名}'
print(f'my name is {name},my age is {age}')
3. List(列表):
List(列表) 是 Python 中使用最频繁的数据类型。
Python 中使用最频繁的数据类型。
列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
列表是写在方括号 [] 之间、用逗号分隔开的元素列表。
和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。
列表截取的语法格式如下:
变量[头下标:尾下标]
在[]内用逗号分隔开多个任意类型的值:
L = ['dahai',1,1.2,[1.22,'小海']]
# 0 1 2 3
# 0 1
print(L)
print(type(L))
列表取值:
# # 索引从0开始 相当于我们书的页码
print(L[0])
print(L[1])
print(L[0][0])
# 反向取
print(L[-1])
print(L[-1][1])
print(L[-1][1][0])
dahai=L[0]
print(dahai)
列表内元素修改:
L[0]= '红海'
print(L)
print(L[0])
honghai=L[0]
print(honghai)
4. Dict(字典):
记录多个key:value值,优势是每一个值value都有其对应关系/映射关系key,而key对value有描述性的功能。
在{}内用逗号分隔开多个key:value元素,其中value可以是任意的数据类型,而key通常应该是字符串类型
info = {'name':'大海','age':18}
简单使用:
# 简单使用
# 通过key进行取值
print(info['name'])
print(info['age'])
列表和字典区别:
# 列表是依靠索引
# 字典是依靠键值对 # key描述性的信息
5. Tuple(元组):
记录多个值,当多个值没有改的需求,此时用元组更合适。
在()内用逗号分隔开多个任意类型的值:
t = (1,2,'大海',(2,3),['红海',2,3])
# 0 1 2 3 4
# 0 1 2
print(t)
print(type(t))
元组取值方式和列表一样:
# 简单使用
print(t[0])
前面已经说过,三个不可变的数据,字符串,数字和元组,所以元组里元素是不可改变的,但是元组里的列表是可以改变的。
# 元组里的元素不可改
# t[0]= 5
# t[4] = 2
# 修改元组里的列表
print(t[4])
t[4][0]='黄海'
print(t)
6. Set(集合):
集合的作用是关系运算,定义是在{}内用逗号分开个的多个值。需要注意:
1.元素不能重复(定义不能这样写相同的)
2.集合里面的元素是无序
如:
s = {1,2,3}
print(s)
print(type(s))
基本使用:
s1 = {'a','b','c'}
s2 = {'b','c','d'}
# # 拿2个集合相同的元素 shift + 7交集符号 交集
print(s1 & s2)
# 拿2个集合所有的元素 并集
print(s1 | s2)
# s1 去 抵消它们的交集 差集
print(s1 - s2)
# s2 去 抵消它们的交集 差集
print(s2 - s1)
Python六中标准数据类型已经介绍完了。实际使用中,数据之前存在转换,那么有哪些转换方式呢?
三、Python 数据类型的转换
有时候,我们需要对数据内置的类型进行转换,数据类型的转换,一般情况下你只需要将数据类型作为函数名即可。
Python 数据类型转换可以分为两种:
1. 隐式类型转换 - 自动完成
2. 显式类型转换 - 需要使用类型函数来转换
隐式类型转换:
在隐式类型转换中,Python 会自动将一种数据类型转换为另一种数据类型,不需要我们去干预。以下实例中,我们对两种不同类型的数据进行运算,较低数据类型(整数)就会转换为较高数据类型(浮点数)以避免数据丢失。
num_int = 100
num_flo = 0.345num_new = num_int + num_floprint("datatype of num_int:",type(num_int))
print("datatype of num_flo:",type(num_flo))
print("Value of num_new:",num_new)
print("datatype of num_new:",type(num_new))
运行结果:
datatype of num_int: <class 'int'>
datatype of num_flo: <class 'float'>
Value of num_new: 100.345
datatype of num_new: <class 'float'>
显式类型转换:
在显式类型转换中,用户将对象的数据类型转换为所需的数据类型。我们使用 int()、float()、str() 等预定义函数来执行显式类型转换。
示例代码:
# int() 强制转换为整型:
x = int(1) # x 输出结果为 1
y = int(2.8) # y 输出结果为 2
# float() 强制转换为浮点型:
x = float(1) # x 输出结果为 1.0
y = float(2.8) # y 输出结果为 2.8
# str() 强制转换为字符串类型:
x = str("s1") # x 输出结果为 's1'
y = str(2) # y 输出结果为 '2'
# 整型和字符串类型进行运算,就可以用强制类型转换来完成:
num_int = 123
num_str = "456"
print("num_int 数据类型为:",type(num_int))
print("类型转换前,num_str 数据类型为:",type(num_str))
num_str = int(num_str) # 强制转换为整型
print("类型转换后,num_str 数据类型为:",type(num_str))num_sum = num_int + num_strprint("num_int 与 num_str 相加结果为:",num_sum)
print("sum 数据类型为:",type(num_sum))
运行结果:
num_int 数据类型为: <class 'int'>
类型转换前,num_str 数据类型为: <class 'str'>
类型转换后,num_str 数据类型为: <class 'int'>
num_int 与 num_str 相加结果为: 579
sum 数据类型为: <class 'int'>
四、Python 字符串格式化输出
除了前面介绍的占位符,字符串格式化输出也可以使用format函数
"name is:{},age is :{}".format(name,age)
相关文章:
Python入门学习——Day2-变量和数据类型
一、Python 变量 在Python中,变量用于保存数据,方便程序对数据的处理和操作。下面是关于Python变量的一些重要概念: 变量命名规则: 变量名由字母、数字和下划线组成。变量名可以以字母或下划线开头,但不能以数字开头…...
Graylog 更改显示的时区(Display timezone)
每个 Graylog 用户都可以配置他们的显示时区。 这会更改用于查看日志消息的时区,但不会更改日志消息的原始时区。 默认情况下,Graylog 显示 UTC 格式的所有时间戳(也就是 0:00)。就像是下面这样 非Admin账户要更改时区࿱…...
【网络安全防护】上海道宁与Bitdefender帮助您构建弹性网络并降低安全运营成本
在网络的世界中 风险变得更加常见与复杂 企业需要从网络安全转向网络弹性 复杂的网络攻击已非常普遍 在面临攻击时 企业如何保持业务连续性? Bitdefender GravityZone将 风险分析、安全加固、威胁预防 检测和响应功能相结合 帮助您构建弹性网络 并降低安全…...
文心一言 VS CHATGPT
由于近几天来,我的手机短信不断收到百度公司对于“文心一言”大模型的体验邀请(真是不胜其烦)!!所以我就抱着试试看的态度点开了文心一言的链接:文心一言 目前看来,有以下两点与chatgpt是有比较…...
2023-09-01力扣每日一题
链接: 2240. 买钢笔和铅笔的方案数 题意: 一共total元,两种笔分别cost1和cost2元,求能买的的笔的所有情况,不要求花光钱 解: 枚举其中一个数字就行 实际代码: #include<bits/stdc.h&g…...
【Python】从入门到上头— IO编程(8)
文章目录 一.IO编程是什么二.文件读写1.读取文件2.file-like Object二进制文件字符编码 3.写文件file对象的常用函数常见标识符 三.StringIO和BytesIO1.StringIO2.BytesIO 四.操作文件和目录五.序列化和反序列化1.pickle.dumps()2.pickle.loads()3.JSON 一.IO编程是什么 IO在计…...
R语言对综合社会调查GSS数据进行自举法bootstrap统计推断、假设检验、探索性数据分析可视化|数据分享...
全文链接:https://tecdat.cn/?p33514 综合社会调查(GSS)是由国家舆论研究中心开展的一项观察性研究。自 1972 年以来,GSS 一直通过收集当代社会的数据来监测社会学和态度趋势。其目的是解释态度、行为和属性的趋势和常量。从 197…...
LeetCode 刷题第四轮 Offer I + 类型题
目录 剑指 Offer 04. 二维数组中的查找 剑指 Offer 29. 顺时针打印矩阵 剑指 Offer 09. 用两个栈实现队列 剑指 Offer 30. 包含min函数的栈 剑指 Offer 10- I. 斐波那契数列 [类型:记忆优化 递归 / 动态规划] 剑指 Offer 10- II. 青蛙跳台阶问题 [类型&am…...
LabVIEW计算测量路径输出端随机变量的概率分布密度
LabVIEW计算测量路径输出端随机变量的概率分布密度 今天,开发算法和软件来解决计量综合的问题,即为特定问题寻找最佳测量算法。提出了算法支持,以便从计量上综合测量路径并确定所开发测量仪器的测量误差。测量路径由串联的几个块组成&#x…...
[C++ 网络协议] 多进程服务器端
具有代表性的并发服务器端实现模型和方法: 多进程服务器:通过创建多个进程提供服务。✔ 多路复用服务器:通过捆绑并统一管理I/O对象提供服务。 多线程服务器:通过生成与客户端等量的线程提供服务。 目录 1. 进程的概念及应用 1.…...
李宏毅 2022机器学习 HW2 strong baseline 上分路线
strong baseline上分路线 baseline增加concat_nframes (提升明显)增加batchnormalization 和 dropout增加hidden layer宽度至512 (提升明显) 提交文件命名规则为 prediction_{concat_nframes}[{n_hidden_layers}{dropout}_bn].c…...
伦敦银交易时间怎么选择?
伦敦银和伦敦金都是全球性的交易品种,一般的现货贵金属交易平台,都可以同时经营这两个品种,而且它们的交易时间是一致的,以香港市场的平台为例,基本上交易时间都会从北京周一的早上7点,延续到周六凌晨5点左…...
解决FreeRTOS程序跑不起来,打印调试却提示“Error:..\FreeRTOS\port\RVDS\ARM_CM3\port.c,244“的方法
前言 今天来分享一个不会造成程序编译报错,但会使程序一直跑不起来,并且通过调试会发现有输出错误提示的错误例子分析,话不多说,我们就直接开始分析~ 首先,我们说过这个例子在编译时候没有明示的错误提示,…...
Python序列类型
序列(Sequence)是有顺序的数据列,Python 有三种基本序列类型:list, tuple 和 range 对象,序列(Sequence)是有顺序的数据列,二进制数据(bytes) 和 文本字符串&…...
【python爬虫】5.爬虫实操(歌词爬取)
文章目录 前言项目:寻找周杰伦分析过程代码实现重新分析过程什么是NetworkNetwork怎么用什么是XHR?XHR怎么请求?json是什么?json数据如何解析?实操:完成代码实现 一个总结一个复习 前言 这关让我们一起来寻…...
浅探Android 逆向前景趋势~
前段时间,我和朋友偶然间谈起安卓逆向,他问我安卓逆向具体是什么,能给我们带来什么实质性的东西,我也和朋友大概的说了一下,今天在这里拿出来和大家讨论讨论,也希望帮助大家来了解安卓逆向。 谈起安卓逆向…...
国际音标学习笔记
目录 1.单元音2.双元音3.辅音4.音节5.自然拼读法则5.1辅音字母的音标 1.单元音 我觉得单纯的音标并不好记住,所以就跟着老师整,根据单词记住音标的发音,以下是我的理解 音标对应的单词汉化iis衣əer饿ɔorigin奥u/ʊwoman五ʌart啊eanything哎…...
Azure - AzCopy学习
使用 AzCopy 将本地数据迁移到云存储空间 azcopy login 创建存储账号 ./azcopy login --tenant-id 40242385-c249-4746-95dc-4a0b64d49dc5这里的—tenant-id 在下面的地方查看:目录 ID;需要拥有Storage Blob Data Owner 的权限账号下可能会有很多目录&am…...
解决无法远程连接MySQL服务的问题
① 设置MySQL中root用户的权限: [rootnginx-dev etc]# mysql -uroot -pRoot123 mysql> use mysql; mysql> GRANT ALL PRIVILEGES ON *.* TO root% IDENTIFIED BY Root123 WITH GRANT OPTION; mysql> select host,user,authentication_string from user; -…...
mybatiplus代码生成器
目录 1.pom文件引入 2.引入模板引擎 3.注意 新版本,老版本配置和用法都不太一样,此处暂不展示;另外也可以尝试一下MyBatis-Flex 总之mybatisplus有的或者收费的,它都有MyBatis-Flex 是什么 - MyBatis-Flex 官方网站 1.pom文件…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...
uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...
解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...
