当前位置: 首页 > news >正文

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中&#xff0c;变量用于保存数据&#xff0c;方便程序对数据的处理和操作。下面是关于Python变量的一些重要概念&#xff1a; 变量命名规则&#xff1a; 变量名由字母、数字和下划线组成。变量名可以以字母或下划线开头&#xff0c;但不能以数字开头…...

Graylog 更改显示的时区(Display timezone)

每个 Graylog 用户都可以配置他们的显示时区。 这会更改用于查看日志消息的时区&#xff0c;但不会更改日志消息的原始时区。 默认情况下&#xff0c;Graylog 显示 UTC 格式的所有时间戳&#xff08;也就是 0:00&#xff09;。就像是下面这样 非Admin账户要更改时区&#xff1…...

【网络安全防护】上海道宁与Bitdefender帮助您构建弹性网络并降低安全运营成本

在网络的世界中 风险变得更加常见与复杂 企业需要从网络安全转向网络弹性 复杂的网络攻击已非常普遍 在面临攻击时 企业如何保持业务连续性&#xff1f; Bitdefender GravityZone将 风险分析、安全加固、威胁预防 检测和响应功能相结合 帮助您构建弹性网络 并降低安全…...

文心一言 VS CHATGPT

由于近几天来&#xff0c;我的手机短信不断收到百度公司对于“文心一言”大模型的体验邀请&#xff08;真是不胜其烦&#xff09;&#xff01;&#xff01;所以我就抱着试试看的态度点开了文心一言的链接&#xff1a;文心一言 目前看来&#xff0c;有以下两点与chatgpt是有比较…...

2023-09-01力扣每日一题

链接&#xff1a; 2240. 买钢笔和铅笔的方案数 题意&#xff1a; 一共total元&#xff0c;两种笔分别cost1和cost2元&#xff0c;求能买的的笔的所有情况&#xff0c;不要求花光钱 解&#xff1a; 枚举其中一个数字就行 实际代码&#xff1a; #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统计推断、假设检验、探索性数据分析可视化|数据分享...

全文链接&#xff1a;https://tecdat.cn/?p33514 综合社会调查&#xff08;GSS&#xff09;是由国家舆论研究中心开展的一项观察性研究。自 1972 年以来&#xff0c;GSS 一直通过收集当代社会的数据来监测社会学和态度趋势。其目的是解释态度、行为和属性的趋势和常量。从 197…...

LeetCode 刷题第四轮 Offer I + 类型题

目录 剑指 Offer 04. 二维数组中的查找 剑指 Offer 29. 顺时针打印矩阵 剑指 Offer 09. 用两个栈实现队列 剑指 Offer 30. 包含min函数的栈 剑指 Offer 10- I. 斐波那契数列 [类型&#xff1a;记忆优化 递归 / 动态规划] 剑指 Offer 10- II. 青蛙跳台阶问题 [类型&am…...

LabVIEW计算测量路径输出端随机变量的概率分布密度

LabVIEW计算测量路径输出端随机变量的概率分布密度 今天&#xff0c;开发算法和软件来解决计量综合的问题&#xff0c;即为特定问题寻找最佳测量算法。提出了算法支持&#xff0c;以便从计量上综合测量路径并确定所开发测量仪器的测量误差。测量路径由串联的几个块组成&#x…...

[C++ 网络协议] 多进程服务器端

具有代表性的并发服务器端实现模型和方法&#xff1a; 多进程服务器&#xff1a;通过创建多个进程提供服务。✔ 多路复用服务器&#xff1a;通过捆绑并统一管理I/O对象提供服务。 多线程服务器&#xff1a;通过生成与客户端等量的线程提供服务。 目录 1. 进程的概念及应用 1.…...

李宏毅 2022机器学习 HW2 strong baseline 上分路线

strong baseline上分路线 baseline增加concat_nframes &#xff08;提升明显&#xff09;增加batchnormalization 和 dropout增加hidden layer宽度至512 &#xff08;提升明显&#xff09; 提交文件命名规则为 prediction_{concat_nframes}[{n_hidden_layers}{dropout}_bn].c…...

伦敦银交易时间怎么选择?

伦敦银和伦敦金都是全球性的交易品种&#xff0c;一般的现货贵金属交易平台&#xff0c;都可以同时经营这两个品种&#xff0c;而且它们的交易时间是一致的&#xff0c;以香港市场的平台为例&#xff0c;基本上交易时间都会从北京周一的早上7点&#xff0c;延续到周六凌晨5点左…...

解决FreeRTOS程序跑不起来,打印调试却提示“Error:..\FreeRTOS\port\RVDS\ARM_CM3\port.c,244“的方法

前言 今天来分享一个不会造成程序编译报错&#xff0c;但会使程序一直跑不起来&#xff0c;并且通过调试会发现有输出错误提示的错误例子分析&#xff0c;话不多说&#xff0c;我们就直接开始分析~ 首先&#xff0c;我们说过这个例子在编译时候没有明示的错误提示&#xff0c…...

Python序列类型

序列&#xff08;Sequence&#xff09;是有顺序的数据列&#xff0c;Python 有三种基本序列类型&#xff1a;list, tuple 和 range 对象&#xff0c;序列&#xff08;Sequence&#xff09;是有顺序的数据列&#xff0c;二进制数据&#xff08;bytes&#xff09; 和 文本字符串&…...

【python爬虫】5.爬虫实操(歌词爬取)

文章目录 前言项目&#xff1a;寻找周杰伦分析过程代码实现重新分析过程什么是NetworkNetwork怎么用什么是XHR&#xff1f;XHR怎么请求&#xff1f;json是什么&#xff1f;json数据如何解析&#xff1f;实操&#xff1a;完成代码实现 一个总结一个复习 前言 这关让我们一起来寻…...

浅探Android 逆向前景趋势~

前段时间&#xff0c;我和朋友偶然间谈起安卓逆向&#xff0c;他问我安卓逆向具体是什么&#xff0c;能给我们带来什么实质性的东西&#xff0c;我也和朋友大概的说了一下&#xff0c;今天在这里拿出来和大家讨论讨论&#xff0c;也希望帮助大家来了解安卓逆向。 谈起安卓逆向…...

国际音标学习笔记

目录 1.单元音2.双元音3.辅音4.音节5.自然拼读法则5.1辅音字母的音标 1.单元音 我觉得单纯的音标并不好记住&#xff0c;所以就跟着老师整&#xff0c;根据单词记住音标的发音&#xff0c;以下是我的理解 音标对应的单词汉化iis衣əer饿ɔorigin奥u/ʊwoman五ʌart啊eanything哎…...

Azure - AzCopy学习

使用 AzCopy 将本地数据迁移到云存储空间 azcopy login 创建存储账号 ./azcopy login --tenant-id 40242385-c249-4746-95dc-4a0b64d49dc5这里的—tenant-id 在下面的地方查看&#xff1a;目录 ID&#xff1b;需要拥有Storage Blob Data Owner 的权限账号下可能会有很多目录&am…...

解决无法远程连接MySQL服务的问题

① 设置MySQL中root用户的权限&#xff1a; [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.注意 新版本&#xff0c;老版本配置和用法都不太一样&#xff0c;此处暂不展示&#xff1b;另外也可以尝试一下MyBatis-Flex 总之mybatisplus有的或者收费的&#xff0c;它都有MyBatis-Flex 是什么 - MyBatis-Flex 官方网站 1.pom文件…...

leetcode分类刷题:哈希表(Hash Table)(三、循环存在问题)

1、当需要快速判断某元素是否出现在序列中时&#xff0c;就要用到哈希表了。 2、本文针对的总结题型为给定的序列或需要构造的序列中是否存在循环&#xff0c;与 160. 相交链表、 141. 环形链表、142. 环形链表 II的题型一样。 202. 快乐数 这道题还考察如何对正整数求解各个位…...

43、基于 springboot 自动配置的 spring mvc 错误处理,就是演示项目报错后,跳转到自定义的错误页面

Spring MVC 的错误处理&#xff1a;基于 SpringBoot 自动配置之后的 Spring MVC 错误处理。 就是访问方法时出错&#xff0c;然后弄个自定义的错误页面进行显示。 ★ 两种错误处理方式 方式一&#xff1a; 基于Spring Boot自动配置的错误处理方式&#xff0c;只要通过属性文件…...

干货分享,现代列式数据库系统如何设计与实现? | StoneData 论文选读

作者&#xff1a;袁洋 | StoneData 技术架构师 审核&#xff1a;王博 论文链接&#xff1a;columnstoresfntdbs.pdf (harvard.edu) 列存四先驱和 MIT 知名教授 Samuel Madden 于 2013 年在某期刊上写的一篇当时列存相关技术的综述。文章还挺全面也很经典&#xff0c;通过剖析三…...

说说构建流批一体准实时数仓

分析&回答 基于 Hive 的离线数仓往往是企业大数据生产系统中不可缺少的一环。Hive 数仓有很高的成熟度和稳定性&#xff0c;但由于它是离线的&#xff0c;延时很大。在一些对延时要求比较高的场景&#xff0c;需要另外搭建基于 Flink 的实时数仓&#xff0c;将链路延时降低…...

北京筑龙受邀出席中物联“采购供应链中国行—走进雄安”活动

日前&#xff0c;“采购供应链中国行—走进雄安”活动在河北雄安新区成功举办&#xff0c;来自30家相关单位的50余名领导和代表参加了本次活动。活动由中国物流与采购联合会公共采购分会主办&#xff0c;中国物流与采购联合会采购委、中国雄安集团有限公司、河北雄安新区招标投…...

【Tkinter界面:练习-01】窗口-部件-布局

一、说明 python在用户界面开发中&#xff0c;其中有QT5&#xff0c;和Tkinter&#xff1b;对于实际项目&#xff0c;界面需要高大上&#xff0c;因此用QT5&#xff0c;对于开发人员的演示程序&#xff0c;或简单程序中&#xff0c;不建议QT5&#xff1b;用Tkinter已经足够。本…...

LeetCode每日一题:823. 带因子的二叉树(2023.8.29 C++)

目录 823. 带因子的二叉树 题目描述&#xff1a; 实现代码与解析&#xff1a; dp hash 原理思路&#xff1a; 823. 带因子的二叉树 题目描述&#xff1a; 给出一个含有不重复整数元素的数组 arr &#xff0c;每个整数 arr[i] 均大于 1。 用这些整数来构建二叉树&#x…...

【教学类-35-01】学号+姓名+班级(描字帖)A4一页

背景说明&#xff1a; 本学期我带机动班&#xff0c;其中大4班去的频率比较高&#xff0c;与是我用大四班的名单做了一份 “描字帖”&#xff0c;在9月1日第一天见面时&#xff0c;孩子们用记号笔描字帖时&#xff0c;我也可以对这些孩子初步混个眼熟&#xff08;聪明的&#x…...

UE5 里的一些常用的了解

# ACharacter、APawn的继承关系 ACharacter -继承自-> APawn -继承自-> AActor和 INavAgentInterface AActor -继承自-> UObject -继承自->UObjectBaseUtility -继承自-> UObjectBase&#xff08;一个独立的类&#xff09;INavAgentInterface是一个独立的类 #…...

【网络安全带你练爬虫-100练】第19练:使用python打开exe文件

目录 一、目标1&#xff1a;调用exe文件 二、目标2&#xff1a;调用exe打开文件 一、目标1&#xff1a;调用exe文件 1、subprocess 模块允许在 Python 中启动一个新的进程&#xff0c;并与其进行交互 2、subprocess.run() 函数来启动exe文件 3、subprocess.run(["文件路…...