资讯专栏INFORMATION COLUMN

python学习笔记3---变量与运算符

LMou / 969人阅读

摘要:什么是变量假设两个做数学运算先把乘以,然后加上,最后再加上列表变量名的命名规则变量名命名只能使用字母数字下划线变量名的首字母不能是数字系统关键字,不能用在变量名中保留关键字不是系统保留关键字,但是不建议作为变量名,否则极易出错动态语言的特性

什么是变量
假设两个list做数学运算
>>> [1,2,3,4,5,6] [1,2,3]
Traceback (most recent call last):
  File "", line 1, in 
    [1,2,3,4,5,6] [1,2,3]
TypeError: list indices must be integers or slices, not tuple

//A B,先把A乘以3,然后加上B,最后再加上列表A
>>> [1,2,3,4,5,6]*3+[1,2,3]+[1,2,3,4,5,6]
[1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 1, 2, 3, 4, 5, 6]

>>> A = [1,2,3,4,5,6]
>>> print(A)
[1, 2, 3, 4, 5, 6]
>>> B = [1,2,3]
>>> A*3 + B + A
[1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 1, 2, 3, 4, 5, 6]
变量名的命名规则
变量名命名只能使用字母、数字、下划线
>>> 1a = 2   //变量名的首字母不能是数字
SyntaxError: invalid syntax
>>> A2 = "1"
>>> _2 = "1"
>>> A*B="1"
SyntaxError: can"t assign to operator  
系统关键字,不能用在变量名中 保留关键字
>>> and = 1
SyntaxError: invalid syntax
>>> if = 2
SyntaxError: invalid syntax
>>> import = 3
SyntaxError: invalid syntax
>>> type = 3   //type不是系统保留关键字,但是不建议作为变量名,否则极易出错
>>> print(type)
3
>>> type = 1
>>> type(1)
Traceback (most recent call last):
  File "", line 1, in 
    type(1)
TypeError: "int" object is not callable
>>> 1(1)
Traceback (most recent call last):
  File "", line 1, in 
    1(1)
TypeError: "int" object is not callable
python动态语言的特性,声明时不需要指明变量类型
>>> a = "1"
>>> a = 1
>>> a = (1,2,3)
>>> a = {1,2,3}
值类型与引用类型
int、str、tuple是值类型(不可变),list、set、dict是引用类型(可变)

1.int

>>> a = 1
>>> b = a
>>> a = 3
>>> print(b)
1

2.list

>>> a = [1,2,3,4,5]
>>> b = a
>>> a[0] = "1"
>>> print(a)
["1", 2, 3, 4, 5]
>>> print(b)
["1", 2, 3, 4, 5]
>>> a = [1,2,3]
>>> id(a)
4405825224
>>> hex(id(a))
"0x1069b8ec8"
>>> a[0]="1"
>>> id(a)
4405825224
>>> 

3.str

>>> a = "hello"
>>> a = a + "python"  //a加上一个新的字符串,不再是原来的字符串了
>>> print(a)
hellopython
>>> b = "hello"
>>> id(b)
4405534032
>>> b = b + "python"  //加上新的字符串后,id改变
>>> id(b)
4355329456
>>> "python"[0]
"p"
>>> "python"[0]="o"
Traceback (most recent call last):
  File "", line 1, in 
    "python"[0]="o"
TypeError: "str" object does not support item assignment

4.tuple

>>> a = (1,2,3)
>>> a[0] = "1"
Traceback (most recent call last):
  File "", line 1, in 
    a[0] = "1"
TypeError: "tuple" object does not support item assignment
>>> b = [1,2,3]
>>> b.append(4)
>>> print(b)
[1, 2, 3, 4]
>>> c = (1,2,3)
>>> c.append(4)
Traceback (most recent call last):
  File "", line 1, in 
    c.append(4)
AttributeError: "tuple" object has no attribute "append"

>>> a = (1,2,3,[1,2,4])
>>> a[2]
3
>>> a[3]
[1, 2, 4]
>>> a[3][2]
4
>>> a = (1,2,3,[1,2,["a","b","c"]])
>>> a[3][2][1]
"b"
>>> a = (1,2,3,[1,2,4])
>>> a[2] = "3"
Traceback (most recent call last):
  File "", line 1, in 
    a[2] = "3"
TypeError: "tuple" object does not support item assignment
>>> a[3][2] = "4"
>>> print(a)    //元组内的列表可变
(1, 2, 3, [1, 2, "4"])
运算符

1.算数运算符:+,-,* ,/,//,%,**

>>> "hello"+"world"
"helloworld"
>>> [1,2,3]*3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
>>> 3-1
2
>>> 3/2
1.5
>>> 3//2   //整除
1
>>> 5%2   //求余
1
>>> 2**2   //求N次方
4
>>> 2**5
32

2.赋值运算符:=,+=,-=,*=,/=,%=,**=,//=

>>> c = 1
>>> c = c+1
>>> print(c)
2
>>> c+=1
>>> print(c)
3
>>> c-=1
>>> print(c)
2
>>> c++   //python中没有自增和自减运算符
SyntaxError: invalid syntax
>>> c--
SyntaxError: invalid syntax
>>> b=2
>>> a=3
>>> b+=a
>>> print(b)
5
>>> b-=a
>>> print(b)
2
>>> b*=a
>>> print(b)
6

3.比较(关系)运算符:==,!=,>,<,>=,<=

>>> 1==1
True
>>> 1>1
False
>>> 1>=1
True
>>> a>=b
Traceback (most recent call last):
  File "", line 1, in 
    a>=b
NameError: name "a" is not defined
>>> a=1
>>> b=2
>>> a!=b
True
>>> b=1
>>> b+=b>=1    //b=b+True
>>> print(b)
2
>>> print(b>=1)     
True

>>> 1>1
False
>>> 2>3
False
>>> "a">"b"
False
>>> ord("a")
97
>>> ord("b")
98
>>> "abc"<"abd"   //实际上是a和a比,b和b比,c和d比
True
>>> ord("abc")
Traceback (most recent call last):
  File "", line 1, in 
    ord("abc")
TypeError: ord() expected a character, but string of length 3 found
>>> ord("c")
99
>>> ord("d")
100
>>> [1,2,3]<[2,3,4]
True
>>> (1,2,3)<(1,3,2)
True

4.逻辑运算符:and,or,not

>>> True and True
True
>>> True and False
False
>>> True or False
True
>>> False or False
False
>>> not False
True
>>> not True
False
>>> not not True
True
0 被认为是False,非0 表示True
>>> 1 and 1
1
>>> "a" and "b"
"b"
>>> "a" or "b"
"a"
>>> not "a"
False
>>> a = True
>>> b = False
>>> a or b
True
>>> b and a
False
空字符串 False
>>> not 0.1
False
>>> not ""
True
>>> not "0"
False
空的列表 False
>>> not []
True
>>> not [1,2]
False
>>> [1] or []
[1]
>>> [] or [1]
[1]
>>> "a" and "b"
"b"
>>> "" and "b"
""
>>> 1 and 0
0
>>> 0 and 1
0
>>> 1 and 2
2
>>> 2 and 1
1
>>> 0 or 1
1
>>> 1 or 0
1
>>> 1 or 2
1

5.成员运算符:in,not in

>>> a = 1
>>> a in [1,2,3,4,5]
True
>>> b = 6
>>> b in [1,2,3,4,5]
False
>>> b not in [1,2,3,4,5]
True
>>> b = "h"
>>> b in "hello"
True
>>> b not in (1,2,3,4,5)
True
>>> b not in {1,2,3,4,5}
True
>>> b = "a"
>>> b in {"c":1}
False
>>> b = 1
>>> b in {"c":1}
False
>>> b = "c"
>>> b in {"c":1}   //字典里面根据key返回
True

6.身份运算符:is,is not

对象的三个特征:id、value、type,判断id用“is”,判断value用“==”,判断type用“isinstance”
>>> a = 1
>>> b = 1
>>> a is b
True
>>> a="hello"
>>> b="world"
>>> a is b
False
>>> c="hello"
>>> a is c
True
>>> a=1
>>> b=2
>>> a==b
False
>>> a=1
>>> b=1
>>> a is b
True
>>> a==b
True
>>> a=1
>>> b=1.0
>>> a==b
True
>>> a is b   //is不是比较值相等,比较的是两个变量的身份(内存地址)是否相等
False
>>> id(a)
4374928384
>>> id(b)
4376239272


>>> a={1,2,3}
>>> b={2,1,3}
>>> a==b    //集合是无序的
True
>>> a is b
False
>>> id(a)
4433997384
>>> id(b)
4433996488

>>> c=(1,2,3)
>>> d=(2,1,3)
>>> c==d    //元组是序列,是有序的
False
>>> c is d
False

>>> a=1
>>> b=2
>>> a==b
False
>>> a is b
False

>>> a = "hello"
>>> type(a) == int
False
>>> type(a) == str
True
>>> isinstance(a,str)   //isinstance是判断变量类型的函数
True
>>> isinstance(a,int)
False
>>> isinstance(a,(int,str,float))
True
>>> isinstance(a,(int,float))
False

7.位运算符:(==把数字当作二进制数进行运算==)

&按位与

|按位或

^按位异或

~按位取反

<<左移动

>>右移动

按位与运算,每一个二进制数位进行对比,两个都为1,则得到1,只要有一个为0,就得到0
>>> a = 2
>>> b = 3
>>> a & b
2
变量 转换为十进制
a 1 0 2
b 1 1 3
按位与 1 0 2
按位或运算,每一个二进制数位进行对比,只要有一个为1,就得到1,两个都为0,则得到0
>>> a = 2
>>> b = 3
>>> a | b
3
变量 转换为十进制
a 1 0 2
b 1 1 3
按位或 1 1 3

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/44884.html

相关文章

  • Python学习笔记2(解释器+算符

    摘要:解释器的系统上,一般默认的版本为,我们可以将安装在目录中。中的按位运算法则如下下表中变量为,为,二进制格式如下逻辑运算符图片逻辑运算符测试实例中包含了一系列的成员,包括字符串,列表或元组。 3.Python3解释器 Linux/Unix的系统上,一般默认的 python 版本为 2.x,我们可以将 python3.x 安装在 /usr/local/python3 目录中。 安装完成后,...

    happyhuangjinjin 评论0 收藏0
  • python3学习笔记(2)----python的数据类型

    摘要:的基本数据类型中的变量不需要声明。在里,只有一种整数类型,表示为长整型,没有中的。字符串的截取的语法格式如下变量头下标尾下标索引值以为开始值,为从末尾的开始位置。列表列表是中使用最频繁的数据类型。注意构造包含或个元素的元组的特殊语法规则。 1、python3的基本数据类型 Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在 Python 中,...

    陆斌 评论0 收藏0
  • python3学习笔记(1)----基本语法

    摘要:一的基本语法缩进统一个或者个空格。中的数据类型中有个标准类型数字字符串列表元组集合字典数字复数在中,只有一种整数类型,表示长整型。如则会显示,并不是换行。空行与代码缩进不同,空行并不是语法的一部分。我们将首行及后面的代码组称为一个子句。 一、python3的基本语法 1、缩进统一(1个tab或者4个空格)。 for i in range(10): print (i) ...

    yanwei 评论0 收藏0
  • python学习笔记4---分支、循环、条件枚举

    摘要:表达式表达式是运算符和操作数所构成的序列运算符优先级同级的运算符的优先级还是有区别的比如逻辑运算符里的的优先级大于两个括号同级,左结合出现赋值符号时,右结合优先级在文本文件中编写代码脚本是后缀名为的文件,通过命令行执行推荐的,大型工程适合用 表达式 表达式(Expression)是运算符(operator)和操作数(operand)所构成的序列 >>> 1 + 1 2 >>> a ...

    livem 评论0 收藏0
  • Python 3 学习笔记之——数据类型

    摘要:常量的值近似为。在后传入一个整数可以保证该域至少有这么多的宽度表示浮点数保留位小数常量的值近似为。 1. 数字 类型 int, float, bool, complex type() 查看变量类型 isinstance(a, int) 查看变量类型 showImg(https://segmentfault.com/img/remote/1460000016789047); 运算符 ...

    Riddler 评论0 收藏0

发表评论

0条评论

LMou

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<