本文利用的是Python 3.x版本,建议学习3.x版本

Python中的基本数据类型、运算、变量

1. 基本数据类型

1.1 整数

py可以处理任意大小的整数,例如123123456789132456,任意大小,而像CJava等这种语言对整数大小是有要求的,换句话说就是大小是确定的,例如C中的int一般是4个字节,范围是-2147483648~+2147483647,至于为什么py可以这样,因为py内部会根据数的大小进行调整空间,让空间可以存储的下这个数据,因此没有人会说pyint4个字节(实际上比4大很多)。

print(type(3))
#会输出数据类型int

1.2 浮点数

其实就可以理解浮点数是实数,浮点数在计算机内部是以科学记数法表示的,要记住的就是浮点数的运算是有误差的,而整数的运算是永远精确的!!例如,你可以运行以下代码,看看结果是不是和你想的一样

print(1.5-1.4)

可能会出现下图的结果,这就是因为浮点数不是精确的

1.3 字符串

"'括起来的字符,就是字符串,如果字符串内部有',则可以用"括起来还可以用转义符号反斜杠,以下是实例

print('hello')
print("hello")
print("I'am ")
print('\'')
print("'\"")
# \n是换行,如果\n在字符串里不方便阅读,还可以写成如下形式
print('''line1
line2
line3''')
# 等价于
print('line1\nline2\nline3')
# print函数默认会输出后换行,关于print的具体用法之后再说

1.4 布尔值

布尔值是TrueFalse,要么为真要么为假,例如(10<5)这个式子是不正确的,则这个式子的布尔值是False。一般布尔值和布尔运算用在判断表达式中

and,or,not 是三个布尔运算的操作符。True and False的结果为False,就是说用and运算的布尔值,只要有一个是False,则结果为False,必须全为True,才能为TrueTrue or False的结果为True,用or运算的布尔值只要有一个为True,则结果为True,全为False时结果才是Falsenot False的结果是Truenot用来取反。例如以下代码

print(True or False)
print(True and False)
print(not True)

以下是布尔运算真值表,包含了上面描述的情况(来自MIT)。

1.5 空值

空值是py里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

总结

以上是py的基本数据类型,此外py还提供了列表、字典等多种数据类型,还允许创建自定义数据类型,以后会涉及到。

2. 表达式运算

有了数据以后,我们还得对数据进行运算以得到我们想要的结果。数据对象和操作符结合后,组成了表达式,一个简单的表达式为2 + 3两个操作数,一个操作符。以下是基本的数的运算操作符

1 + 2 #和
1 - 2 #差
1 * 2 #积
#以上的结果都是int,如果其中有一个数为float,则结果为float
1 / 2 #商,结果是float
3 % 2 #模运算,也就是求余数
5 // 2 #整除运算,结果是2
2**3 #乘法运算,结果是8

以下是测试图片

3. 变量

3.1 什么是变量

变量基本和代数中变量是一个意思,例如我们在方程中最常用的x。只不过在计算机中变量可以代表各种各样的数据类型。

变量在程序中就是用一个变量名表示了,变量名必须是大小写英文、数字和_的组合,且不能用数字开头。在编程语言中,等号=不再是数学上相等的概念了,而是赋值的意思,也可以说是分配值,例如以下代码

pi = 3.14159

左边的pi代表变量,右边的3.14159代表值,将值利用=赋予给变量pi,这就是以上代码的含义。值储存在计算机的内存中,可以看成是将这个值和一个名字进行了绑定,当我们需要使用这个值的时候,只需使用pi即可。就像我们每个人都有名字一样,一个名字对应了一个人(不考虑重名)。

为什么要给值一个名字呢,为了我们使用方便,例如

pi = 3.14159
r = 2.2
area = pi*(r**2)
##计算圆的面积

不用每次都使用3.14159,而且顾名思义,变量是会发生变化的,在程序运行中途可能发生变化,我们无法提前预知,所以这个时候更加展现出了变量的作用。我们看以下代码

x = 5
x = x + 1
print(x)
#结果为6

如果按照数学上的理解x=x+1是不成立,但是在计算机中=是赋值号,所以这个式子的意思是将x+1的值赋予给xx+1的值是6,所以最后将6赋予给x,所以x最终的结果为6

3.2 改变变量的值

我们可以重新绑定变量和值,使用一个赋值式子即可,例如

x = 6
print(x)
x = 5
print(x)
#输出为6和5

现在x5绑定在了一起,6这个值依然存储在计算机的内存中,但是可能没有变量和其绑定,所以我们再也不能使用这值了,就算我们新分配一个6x,这个6也不是之前的6了。所以可以说之前这个6是一个废值,py内部会有垃圾回收机制,检测到这个值是垃圾后,会回收这块空间供之后分配的值使用。我画了以下的图便于理解。

我们也可以将x绑定为其他数据类型,例如

x = 5
x = True

如果读者会类似于CJava(静态语言)的语言的话,会觉得如上的写法不可思议,会报错,但是在py这就可以使用,因为x仅仅是一个名字,和哪个值绑定完全取决于我们,但是不建议这样更改绑定的数据类型,最好从始至终让变量保持一种数据类型。
例如两个人合作写代码,第一个人开始将x作为int使用,后来当作字符串使用,第二个人在阅读第一个人写的代码时,稍有不慎就会将x的数据类型搞错,从而带来不必要的麻烦。

最后

以上只是快速理解和学习的入门级知识,不涉及深入的理解,例如动态语言、对象、引用等概念,可以自己搜索了解。不过建议学习时,首先有一个总体的把握,首先理解这是个什么东西,等大致都清楚后,再深究细节,这样的学习方法我认为比较好。不然一上来就深究细节,对于已经入门的同学来说倒没什么,要是还没入门就深究细节,怕是要劝退。

题外话,知识本来就应该反复的学习,温故而知新,一层层的学习。先搞清楚这是什么,怎么来的,有什么用,这样学习起来不会迷茫。国内的教学,例如数学方面,有些不好的地方在于,上来就是公式,定理,而忘了最根本的问题,为什么会有这个公式?这个公式有什么用?(不是做题),例如矩阵的特征值,特征向量,可以用来解决生态系统中的动力方程的问题。这样学起来恐怕就不会那么迷茫了吧~

如果觉得不错,可以分享~可以关注公众号~

1. Python中的基本数据类型、运算、变量的更多相关文章

  1. python中不可变数据类型和可变数据类型

    在学习python过程中我们一定会遇到不可变数据类型和可变数据类型. 1.名词解释 以下所有的内容都是基于内存地址来说的. 不可变数据类型: 当该数据类型的对应变量的值发生了改变,那么它对应的内存地址 ...

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

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

  3. python中的常用数据类型

    python中的常用数据类型 以下是个人总结的python中常见的数据类型,话不多说,我们直接步入正题: 数字类型 整型类:int类可以表示任意大小的整数值,在python中没有像JAVA或者C那样的 ...

  4. python中 and 和 or 运算的核心思想 ——— 短路逻辑

    python中 and 和 or 运算的核心思想 --- 短路逻辑 1. 包含一个逻辑运算符 首先从基本的概念着手,python中哪些对象会被当成 False 呢?而哪些又是 True 呢? 在Pyt ...

  5. [转]关于python中带下划线的变量和函数的意义

    Python 的代码风格由 PEP 8 描述.这个文档描述了 Python 编程风格的方方面面.在遵守这个文档的条件下,不同程序员编写的 Python 代码可以保持最大程度的相似风格.这样就易于阅读, ...

  6. python中实现三目运算

    python中没有其他语言中的三元表达式,不过有类似的实现方法 如: a = 1 b =2 k = 3 if a>b else 4 上面的代码就是python中实现三目运算的一个小demo, 如 ...

  7. python中的特殊数据类型

    一.python中的特殊数据类型 对于python,一切事物都是对象,对象基于类创建.像是“wangming”,38,[11,12,22]均可以视为对象,并且是根据不同的类生成的对象. 参照:http ...

  8. Python中的基本数据类型之列表与元组初步了解

    一.什么是列表 1.列表是Python中的基本数据类型之一用[]来表示,每一项元素由逗号隔开,列表什么都能装,(能装对象的对象) 2.可以用来存放大量数据 3.是一个可以改变的数据类型 二.列表的索引 ...

  9. python语言学习7——数据类型和变量

    整数 python可以处理任意大小的整数,包括负整数,在程序中的表示方法和数学上的写法一样 计算机由于使用二进制,有时候采用十六进制表示整数比较方便,十六进制数用0x前缀 浮点数 简单的小数就直接用小 ...

随机推荐

  1. U4687 不无聊的序列

    U4687 不无聊的序列 0通过 85提交 题目提供者飞翔 标签 难度尚无评定 提交 最新讨论 暂时没有讨论 题目背景 如果一个序列的任意一个连续的子序列中没有只出现一次的元素,辣么kkk就认为这个序 ...

  2. FileZilla文件下载的目录

    连接上ftp服务器之后,在remote site那边邮件选中了目录下载文件,但是下载完成之后. 不知道下载到哪里了,用search everything软件搜了一下,发现就在D盘的根目录. 所以,下载 ...

  3. hdu1814Peaceful Commission(2-SAT)

    Peaceful Commission Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  4. [Swift通天遁地]二、表格表单-(8)快速实现表单的输入验证

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  5. Akka源码分析-FSM

    akka还有一个不常使用.但我觉得比较方便的一个模块,那就是FSM(有限状态机).我们知道了akka中Actor模型的具体实现之后,就会发现,Akka的actor可以非常方便的实现FSM.其实在akk ...

  6. SpringBoot集成Swagger2 以及汉化 快速教程

    (一) Swagger介绍 Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件 (二)为什么使用Swagger 在现在的开发过程中还有很大一部分公司都是以口口相传的方式来进行 ...

  7. php微信开放平台--第三方网页微信扫码登录(OAuth2.0)

    第一.OAuth2.0 OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用. 允许用户提 ...

  8. Codeforces 455D 分块+链表

    题意: 给定一个长度为 N 的序列两种操作1 l r 将[l,r]的数向右循环移位 2 l r 询问[l,r]内有多少个数等于 k其中 N,Q≤105,ai≤N 强制在线 思路: 1. 每块用一个链表 ...

  9. PHP网站 通过js方式判断是否是手机访问,若是 跳转到手机版网址!

    <script type="text/javascript" src="http://i3.dukuai.com/ui/js/jquery-1.32pack.js& ...

  10. day02_12/12/2016_bean的实例化之构造器方式