Python3_数据类型和变量

一、数据类型
Python有五个标准的数据类型:
Numbers(数字)
String(字符串)
List(列表)
Tuple(元组)
Dictionary(字典)
在Python中,能够直接处理的数据类型有以下几种:
1、整数
 Python中的整数类型与数学中的整数概念一致,它可正可负没有取值范围限制(只是理论上的无限,实际上机器内存有限,不可能无限大)。

  整数类型的四种表现方式:

    二进制:以0b或0B开头,例如0b010,-0B101

    八进制:以0o或0O开头,例如0o123,-0O456

    十进制:不做说明和演示

    十六进制:以0x或0X开头,例如0x9a,-0X89

2、浮点数
  Python中的浮点数与数学中的实数概念一致,它指的是带有小数点以及小数的数字。与整数不同,浮点数的取值范围和小数精度都存在限制,但常规计算时可以忽略。
 但是浮点数有一个特性需要特别注意:浮点数间运存存在不确定尾数,这不是BUG。这里举一个例子0.1+0.2应该得出的是0.3,但是Python计算出来的却不是0.3,如下:

>>> 0.1+0.2
0.30000000000000004
>>> 0.1+0.5
  Python浮点数可以使用字母e或E作为幂的符号,以10为基数的科学计数法,格式为<a>e<b>,表示a*10^b。例如96000,采用科学计数法就是9.6e4;0.0043,采用科学计数法就是4.3E-3。

3、复数类型

在众多的编程语言中,只有Python提供了复数类型,复数类型与数学中的复数概念一致。定义j2=-1,即j=√(-1),以此为基础构建的数学体系。a+bj被成称为复数,其中a为实部,bj整个是虚数部分,b为虚部。例如:z=1.23e-4+5.6e+89j,那么z就是一个复数类型,可以使用z.real获取实部1.23e-4,z.imag获取虚部5.6e+89。
 
4、字符串
字符串是以单引号’或双引号"括起来的任意文本,比如’123’,“qwe"等等。请注意,’'或”“本身只是一种表示方式,不是字符串的一部分,因此,字符串’abc’只有a,b,c这3个字符。如果’本身也是一个字符,那就可以用”"括起来,比如"This’ me!"包含的字符是T,h,i,s,’,空格,m,e,这8个字符。
如果字符串内部既包含’又包含"怎么办?可以用转义字符\来标识,比如:

"This’\"me\"!"

表示的字符串内容是This’“me”!

转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\表示的字符就是\,可以在Python的交互式命令行用print()打印字符串看看:

> > a = "This’\"me\"!"
>> > print(a)
运行结果:
This’"me"!
>> > print('I\'m learning\nPython3。')
运行结果:
I'm learning
Python3。
>> > print('\\\n\\')
运行结果:
\
\

Python 使用反斜杠 \ 转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个 r,表示原始字符串::

>>> print(r'\\\\\\\n\\\\')
运行结果:
\\\\\\\n\\\\

如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用’’’…’’'的格式表示多行内容,可以自己试试:


>>> print('''
今天还挺忙
云云说我没和她说早上好
然后给我记了小本本''') 运行结果:
今天还挺忙
云云说我没和她说早上好
然后给我记了小本本

5、布尔值
 布尔类型是一个非常特殊的类型,所有标准对象均可用于布尔测试,同类型的对象之间可以比较大小。每个对象天生具有布尔True或False值。空对象,值为零的任何数字或者Null对象None的布尔值都是False。在Python3中True=1,False=0,可以和数字型进行运算。布尔值也可以通过布尔运算计算出来:

>>> True
True
>>> False
False
>>> 1<2
True
>>> 2<1
False

布尔值可以用and、or和not运算。
and运算是与运算,只有所有都为True,and运算结果才是True

>>> True and True
True
>>> True and False
False
>>> False and False
False
>>> 5 > 6 and 32> 1
False

or运算是或运算,只要其中有一个为True,or运算结果就是True:

>>> True or True
True
>>> True or False
True
>>> False or False
False

not运算是非运算,它是一个单目运算符,把True变成False,False变成True:

>>> not True
False
>>> not False
True

布尔值经常用在条件判断中,比如:

age=11
if age >= 18:
print('adult')
else:
print('teenager')
运行结果:
teenager

6、空值
空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。
二、变量
Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。,变量不仅可以是数字,还可以是任意数据类型。
变量在程序中就是用一个变量名表示了,变量名必须是大小写英文、数字和_的组合,且不能用数字开头,比如:

a = 1
变量a是一个整数
a = '1'
变量1是一个字符串。
a = True
变量a是一个布尔值True。

这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如Java是静态语言,赋值语句如下(// 表示注释):

int a = 123; // a是整数类型变量
a = "ABC"; // 错误:不能把字符串赋给整型变量

和静态语言相比,动态语言更灵活,就是这个原因。

赋值语句的等号不等同于数学的等号。比如下面的代码:

x = 1
x = x + 1

如果从数学上理解x = x + 1那无论如何是不成立的,在程序中,赋值语句先计算右侧的表达式x + 1,得到结果2,再赋给变量x。由于x之前的值是1,重新赋值后,x的值变成2。

最后,理解变量在计算机内存中的表示也非常重要。当我们写:

a="qwe123"

时,Python解释器干了两件事情:

在内存中创建了一个’qwe123’的字符串;

在内存中创建了一个名为a的变量,并把它指向’qwe123’。

也可以把一个变量a赋值给另一个变量b,这个操作实际上是把变量b指向变量a所指向的数据,例如下面的代码:

# -*- coding: utf-8 -*-
a= 'ABC'
b = a
a = 'XYZ'
print("a=",a,"b=",b)

运行结果:

a= XYZ b= ABC

最后一行打印出变量b的内容到底是’ABC’呢还是’def’?如果从数学意义上理解,就会错误地得出b和a相同,也应该是’def’,但实际上b的值是’ABC’一行一行分析下代码:

执行a = 'ABC',解释器创建了字符串'ABC'和变量a,并把a指向'ABC':

执行b = a,解释器创建了变量b,并把b指向a指向的字符串'ABC':

执行a = 'XYZ',解释器创建了字符串'XYZ',并把a的指向改为'XYZ',但b并没有更改:

最后,热爱网络安全与Python的朋友可以关注我的公众号。

Python3_数据类型和变量的更多相关文章

  1. Python之路----------基础 一(数据类型、变量、基本语法、流程控制)

    一. 数据类型与变量 1.数据类型 整数   #Python在程序中的表示方法和数学上的写法一模一样,-1,0,1都是整数. 浮点数  1 #浮点数就是小数. 字符串 1 #在Python中字符串是以 ...

  2. main方法中声明8种基本数据类型的变量并赋值

    main方法中声明8种基本数据类型的变量并赋值  char→  int→ long→ float→ double byte→ short→ 

  3. iOS开发环境C语言基础 变量 、 数据类型和变量赋值 、 其他 、 运算符

    1 变量使用常用错误汇总 1.1 问题 在我们使用变量的过程中,会遇到一些问题,在此将这些问题进行汇总,在今后使用的过程中,不出错.即使出现错误也可以很快地找到问题所在. 1.2 方案 变量在使用的过 ...

  4. 01-Java基础知识:数据类型与变量、标识符、运算符、表达式

    Java基础知识:数据类型与变量.标识符.运算符.表达式 一.数据类型 Java定义了基本数据类型.引用数据类型.自定义类型. 八种基本数据类型:byte (1). short (2).  int ( ...

  5. Python教程(2.2)——数据类型与变量

    和C/C++.Java一样,Python也有数据类型和变量两个概念. 数据类型 Python中的几个基本数据类型为整数(integer/int).浮点数(float/float).布尔值(boolea ...

  6. [Python] 文科生零基础学编程系列二——数据类型、变量、常量的基础概念

    上一篇:[Python] 文科生零基础学编程系列--对象.集合.属性.方法的基本定义 下一篇: (仍先以最简单的Excel的VBA为例,语法与Python不同,但概念和逻辑需要理解透彻) p.p1 { ...

  7. JavaScript学习笔记(一)——数据类型和变量

    在学习廖雪峰前辈的JavaScript教程中,遇到了一些需要注意的点,因此作为学习笔记列出来,提醒自己注意! 如果大家有需要,欢迎访问前辈的博客https://www.liaoxuefeng.com/ ...

  8. python入门(8)数据类型和变量

    python入门(8)数据类型和变量 数据类型 在Python中,能够直接处理的数据类型有以下几种: 整数 Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样 ...

  9. python/数据类型和变量

    数据类型和变量 数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是, 计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据, ...

  10. 【STM32H7教程】第9章 STM32H7重要知识点数据类型,变量和堆栈

    完整教程下载地址:http://forum.armfly.com/forum.php?mod=viewthread&tid=86980 第9章   STM32H7重要知识点数据类型,变量和堆栈 ...

随机推荐

  1. centos7 grub修改

    Centos上的grub文件修改 某一次卸载了swap分区重新设置新的swap分区后系统启动不了了 临时解决办法: reboot 重启服务器 进入grub引导界面 按e编辑 删掉rd.lvm.lv=c ...

  2. shell学习之保存数据库

    自动备份 Mysql 数据库脚本 #!/bin/bash #author by wxp #used to backup mysql practise USER=root PASSWD=1234 HOS ...

  3. linux mint安装hadoop

    一.安装 安装ssh openssh-server   配置jdk环境变量~/.bashrc参考 export JAVA_HOME=/opt/jdk1.7.0_55/ export JRE_HOME= ...

  4. Luogu P11280 GFOI Round 2 Jom & Terry 题解 [ 黄 ] [ BFS ]

    Jom & Terry:讲个笑话,我赛时被诈骗了. 思路 先放结论:如果 Terry 到终点的距离小于等于 Jom 到终点的距离,那么 Terry 一定不会被抓. 为啥呢,因为不管 Jom 堵 ...

  5. DeepSeek-R1本地部署如何选择适合你的版本?看这里

    DeepSeek-R1本地部署:选择最适合你的版本,轻松搞定! 关于本地部署DeepSeek-R1前期知识 如果你正在考虑将DeepSeek-R1部署到本地服务器上,了解每种类型的硬件需求是非常重要的 ...

  6. DeepSeek-V3 解读:优化效率与规模

    DeepSeek-V3 是大语言模型(LLM)领域的一项变革性进展,为开源人工智能设定了新的标杆.作为一个拥有 6710 亿参数的专家混合(Mixture-of-Experts,MoE)模型,其中每个 ...

  7. C#/.NET/.NET Core技术前沿周刊 | 第 26 期(2025年2.10-2.16)

    前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...

  8. 百万架构师第四十课:RabbitMq:RabbitMq-工作模型与JAVA编程|JavaGuide

    来源:https://javaguide.net RabbitMQ 1-工作模型与Java编程 课前准备 预习资料 Windows安装步骤 Linux安装步骤 官网文章中文翻译系列 环境说明 操作系统 ...

  9. SWD下载口的端口状态

    1.关于SWD SWD下载口的端口状态:SWD为上拉,SWC为下拉. SWD是MCU下载程序和调试的端口,分为四线制和五线制 四线制:VCC GND SWDIO SWCKL 五线制:VCC GND S ...

  10. Ansible - [03] Ansible ad-hoc模式

    Ansible ad-hoc是一种通过命令行批量管理的方式 格式:ansible 主机集合 -m 模块名 -a "参数" 其他参数: -k 使用密码远程.-i 指定主机列表文件 以 ...