本文利用的是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. tab不显示为空格

  2. [转]Dialog

    在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择.这些功能我们叫它Android Dialog对话框,在我们使用Android的过程中,我归纳了一 ...

  3. .NET平台下Redis使用(三)【ServiceStack.Redis学习】

    MVC4项目下对redis进行增删该查 Models文件下实体类: public class Book { public string BookName {get;set;} public strin ...

  4. 【POJ 1845】 Sumdiv

    [题目链接] 点击打开链接 [算法] 不妨先将A分解质因数 A = p1^q1p2^p2p3^p3..pn^qn 那么,A^B = p1^q1Bp2^q2B...pn^qnB 根据约数和定理,A^B的 ...

  5. 【POJ 2259】 Team Queue

    [题目链接] http://poj.org/problem?id=2259 [算法] 由题,一个人入队时,若这个人所在的组已经有人在队列中,则加入队列,否则排到队末 因此我们发现,这个队列一定是由连续 ...

  6. P3959 宝藏 状压dp

    之前写了一份此题关于模拟退火的方法,现在来补充一下状压dp的方法. 其实直接在dfs中状压比较好想,而且实现也很简单,但是网上有人说这种方法是错的...并不知道哪错了,但是就不写了,找了一个正解. 正 ...

  7. 【高德地图API】Pivot控件中加载地图并禁止Pivot手势

    如题,解决方案,参考[Windows phone应用开发[20]-禁止Pivot手势]http://www.cnblogs.com/chenkai/p/3408658.html. xaml代码清单   ...

  8. java replaceAll 忽略大小写

    public static void main(String[] args) { String temp=" CLASS_path : /aaabb/"; System.out.p ...

  9. [Swift通天遁地]八、媒体与动画-(7)实现多个动画的顺序播放效果

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

  10. Wannafly挑战赛19 A-队列Q

    题目描述 ZZT 创造了一个队列 Q.这个队列包含了 N 个元素,队列中的第 i 个元素用 Qi 表示.Q1 表示队头元素,QN 表示队尾元素.队列中的元素是 N 的一个全排列. ZZT 需要在这个队 ...