python变量,字符编码与运算
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python变量,字符编码与运算相关的知识,希望对你有一定的参考价值。
一,变量
相信大家对于变量都不会很陌生吧,我们从小学解方程的时候的x和y就是变量。那么什么是python的变量呢?
python变量其实和解方程的变量很相似。
>>>a=1 >>>type(a) <class ‘int‘> >>>a=1.0 <class ‘float‘> >>>id(a) 2131613099568
C语言的变量,必须要先声明这个变量的类型,而python的变量可以根据其付给它的值,而动态的修改类型。那么变量有什么用呢?
我们可以把变量看做是一个标签,就是你的名字一样的,如果没有了名字,你会怎样。如果别人想认识你,你要怎么介绍自己。python的解释器中有一个机制,当一个数据没有变量名
或者说是标签与之对应,python就会将其删掉,这样可以减轻内存。python给变量所存储的数据给其一个内存地址。我们可以通过id( )这个函数访问。
我们看这样一个例子。
>>>a=1 >>>a 1 >>>b=a >>>b 1 >>>a=6 >>>a 6 >>>b 1
我们可以这样理解,用a和b这两个变量同时指向1,当a这个变量重新指向另一个数6时,b还是指向1。所以就会出现这样的结果。
二,字符编码
我们先来了解一下什么是字符编码,我们知道计算是以二进制来存储数据的,计算机比较笨,所以它只能识别0和1,那么我们现在的很多英文符号,各种汉字是怎么存储的呢?
计算机最开始是由美国人发明的,所以他们设计了一套编码格式。用一个字节(8位)来表示英文中的字母和字符,这就是ASCII码。
ASCII码最多可以表示255字符这显然对于英文是够用了,但是计算机现在很普及了,世界上这么多的语言这么多的符号,ASCII码根本不够用,那么怎么解决呢?
拿汉字来说,我大中华文化上下五千年,积累了多少的汉字。中国人民的聪明才智,先后推出了gb2312,gbk等一些可以支持中文的编码格式。但是如果只有这些的话,
那么如果我在中国写了一个程序,拿到日本去运行,那么就会变成乱码了,所以需要一个统一的规定。这时Unicode诞生了,Unicode又叫万国码,支持很过国家的语言和符号,
每个字符同一为一个字,及两个字节。Unicode的出现解决了很多的问题,但是这样的话美国佬又不愿意了,本来他们的英文只用一个字节就可以了,现在却要用一个字,这样很
浪费。这时他们又推出了UTF-8,在UTF-8中英文字符为一个字节,而中文变成了3个字节,总感觉好坑。
那么对于对于python来说,python2特别的坑,很多人在字符编码中吃了亏,因为python2出现比较早,所以它的默认编码是ASCII码,对于python3来说就很好了,它磨人的是utf-8,
这样就解决了,编码这个大坑。
>>>import sys >>>print(sys.getdefaultencoding()) #用这个方法可以打印出默认的编码 ‘utf-8‘
python中不同编码中的转化也很容易。
python中的转码,都要经过Unicode,比如我们要把utf-8的编码转化为gbk编码,应该先解码,在编码。反之亦然。
#先解码成Unicode,在编码成gbk a=‘我爱中国!‘ a=a.decode(‘utf-8‘).encode(‘gbk‘) #这时a的编码就是gbk了
三,运算
算数运算:
>>>a=3+2 >>>a 5 >>>a=5-6 >>>a -1 >>>a=5*6 >>>a 30 >>>a=5/2 >>>a 2.5 >>>a=45%10 >>>a 5 >>>a=2**3 >>>a 8 >>>a=8/3 >>>a 2
比较运算:
>>>3==3 True >>>4!=3 True >>>3<>4 #这个语法有问题。 >>>3>4 False >>>3<4 True >>>4>=3 True >>>4<=3 False
赋值运算:
>>>a=3 >>>a 3 >>>a+=3 >>>a 6 >>>a-=3 >>>a 3 >>>a*=3 >>>a 9 >>>a/=3 >>>a 3.0 >>>a%=2 >>>a 1.0 >>>a**=8 >>>a 1.0 >>>a//=2 >>>a 0.0
逻辑运算:
只要是大于0或者不为空就都是False。
什么是逻辑短路:
拿and来说,只有左右同时为真的时候结果才会为真,如果第一个为假的话,那么第二个就不会判断了,直接返回第一个数据。
同理or也会有。
>>>‘‘ and 2 #第一个为空字符串,所以第一个是假,所以返回为第一个字符。 ‘‘ >>> 3 or 0 #第一个为3,所以第一个是真,所以直接返回第一个。 3 >>> not 3 Flase
成员运算:
>>>3 in [3,5,6] True >>>3 not in [3,5,6] False
身份运算:
>>>a=3 >>>b=a >>>id(a) 1720525584 >>>id(b) 1720525584 >>> b is a True >>>b is not a False
位运算:
>>>bin(6)#将十进制数变成二进制 ‘0b110‘ >>>bin(5) ‘0b101‘ >>>6 & 5 #每一位的二进制数相与,下面的同理 4 >>>bin(4) ‘0b100‘ >>>15 |4 15 >>>15^4 11 >>>~4 #相当于在数前面加符号后再减一,表里的有问题。 -5 >>>4<<2 #100B=>10000B 16 >>>4>>2 #100B=>1B 1
运算顺序:
以上是关于python变量,字符编码与运算的主要内容,如果未能解决你的问题,请参考以下文章