吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5908|回复: 36
收起左侧

[学习记录] Python自学笔记(四)

  [复制链接]
l2430478 发表于 2020-12-24 19:31
本帖最后由 l2430478 于 2020-12-24 19:37 编辑

第5章 Python变量与运算符,我已经看完,里面许多地方需要打代码测试效果,我全部记录了下来,不用大家再一个一个打代码。更重要的是,我把重要知识点进行描述,大家看了我的自学笔记,可以省去看视频时间。
视频教程请看https://www.52pojie.cn/thread-1331634-1-1.html 我不在重复发。


给大家发帖,也是我学习的动力。


纯小白可以看看,大神路过。

运算符.jpg

5.1什么是变量
两个列表的一个是[1,2,3,4,5,6]   一个是[1,2,3]
把第一个列表定义为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)              
赋值
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]


['雷电术','灵魂火符','五雷轰','施毒术']
skill  =  ['雷电术','灵魂火符' ]


three_leaf_grass colver


5-2变量得命名规则


1、变量名的首字母不能为数字
字母、数字、下划线(其他特殊字符都不行)
系统关键字 不能用在变量名中  保留关键字
举例不能用 and=    if=   type虽然可以用,但是不推荐 。
变量名 区分大小写
变量没有类型限制


a= '1'
a= 1
a= (1,2,3)
a= {1,2,3}


2、
a=1
b=a
a=3
得print(b)    回车得1  定义了B=A  那么B不会随着A变化而变化


复杂一点


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]
B随着A变化而变化


为什么这样?
上面是int值类型    而下面例子list是引用类型
值类型:int  str tuple       不可改变
引用类型:list  set dict      可变


a='hello'
>>> a='python'
>>> print(a)
python




>>> a='hello'
>>> a=a+'python'
>>> print(a)
hellopython


验证如下: 改变后字符串的内存ID也变了
>>> b='hello'
>>> id(b)
1358140514464
>>> b=b+'python'
>>> id(b)
1358140457328


5-4 列表的可变和元组的不可变


>>> a=[1,2,3]
>>> id(a)
1496439070216
>>> hex(id(a))
'0x15c6ab81e08'
>>> a[0]='12'
>>> id(a)
1496439070216


>>> a=(1,2,3)
>>> a[0]='1'
Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    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 "<pyshell#11>", line 1, in <module>
    c.append(4)
AttributeError: 'tuple' object has no attribute 'append'
>>>


能用元组用元组,尽量别用列表,这样错的话,会报错。


>>> a=(1,2,3,[1,2,4])
如果想得到数字4 需要
>>> 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[3][2]='4'
>>> print(a)
(1, 2, 3, [1, 2, '4'])


5-5运算符
+ - * /  //   
2**5  代表2的5次方
插图运算符---------------------------------------------




5-6


除了运算符,还有赋值
>>> c=1
>>> c=c+1
>>> print(c)
2
>>> c+=1
>>> print(c)
3


c=c+1  其实也就是  c+=1  这就是+=的用法。
再例如:
>>> b=2
>>> a=3
>>> b+=a
>>> print(b)
5
再继续:
>>> b-=a
>>> print(b)
2


说明b-=a    等于b=b-a


再继续
>>> b*=a
>>> print(b)
6
说明b*=a   等于b=b*a






5-7 关系运算法  可以理解为比较运算符


不仅仅是数字的比较  字符串也可以比较
举例
>>> 1==1
True                            会得到一个bool值
>>> 1>1
False
>>> 1>=1                   >=表示大于或者等于
True
>>>






>>> a=1
>>> b=2
>>> a!=b                         !=表示不等于
True




>>> b=1
>>> b+=b>=1
>>> print(b)
2


5-8   不只是数字才能做比较运算
为什么等于2呢?


>>> print(b>1)
True
>>> int(True)
1
所以b=b+1






>>> 'a'  >  'b'
False
因为
>>> ord('a')
97
>>> ord('b')
98


>>> 'abc'  <  'abd'
True


但是
>>> ord('abc')  会报错
在两组字符做比较时候,系统会拿第一个字符和第二个字符做比较。
>>> ord('c') < ord('d')
True


因为
>>> print(ord('c'),ord('d'))
99 100




>>> [1,2,3]<[2,3,4]
True
说明列表可以比较


>>> (1,2,3)<(1,3,3)
True
说明元组可以比较


5-9 逻辑运算符
主要是来操作bool布尔类型,返回也是bool布尔类型。


and  是且的意思  如果有两个条件都true 结果才能TRUE
>>> True and True
True
>>> True and False
False




or是或的意思
>>> True or True
True
>>> False or False
False


no是否则意思
>>> not  True
False


>>> not not True
True


>>> 1 and 1
1
>>> 'a' and 'b'
'b'
>>> 'a' or 'b'
'a'


因为
>>> not  True
False
所以
>>> not 'b'
False




int  float   0会被认为是False  非0 表示True
>>> not 0.1
False


空字符串
>>> not ''
True


>>> not '0'           这里的'0'  不少0 是字符串
False


[]空的列表是False   ,  True
>>> not []
True


>>> not [1,2]
False


tuple set dict 同样遵循[] 规则


一个有元素的列表和一个没有元素的列表
>>> [1] or []
[1]
>>> []or[1]
[1]


>>> [1] or (not [1,2])
[1]
会得到True那个    未必会出现布尔




>>> 'a' and 'b'
'b'
>>> '' and 'b'
''
总结-------------
not:
>>> not 0
True
not 会返回    True


and:
and  是且的意思  如果有两个条件都true 结果才能TRUE
>>> 1 and 0
0
>>> 0 and 1
0


>>> 1 and 2
2
>>> 2 and 1
1
如果两个都是,就取第二个数(类似搬箱子,你给我一个箱子我检查可用,再给我第二箱子,我检查可用。那么你要箱子时候,我会把上面那个箱子还给你。)




or:
>>> 0 or 1
1
>>> 1 or 0
1
>>> 1 or 2
1
>>> 2 or 1
2

免费评分

参与人数 5吾爱币 +3 热心值 +5 收起 理由
zhangzy228 + 1 + 1 用心讨论,共获提升!
angzi124 + 1 谢谢@Thanks!
weicheng + 1 我很赞同!
debug_cat + 1 + 1 我很赞同!
荆棘之吻 + 1 + 1 感谢分享!建议楼主借鉴一下5楼的提议

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

laguang 发表于 2020-12-24 19:37
赞一个~~~
LLY201111 发表于 2020-12-24 19:37
CQLYES 发表于 2020-12-24 19:54
善良的果仁 发表于 2020-12-24 20:02
本帖最后由 善良的果仁 于 2020-12-24 20:09 编辑

[Python] 纯文本查看 复制代码
#还是觉得这样看着舒服 
print("hello !")

[Python] 纯文本查看 复制代码
5.1什么是变量
两个列表的一个是[1,2,3,4,5,6]   一个是[1,2,3]
把第一个列表定义为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)              
赋值
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]


['雷电术','灵魂火符','五雷轰','施毒术']
skill  =  ['雷电术','灵魂火符' ]


three_leaf_grass colver


5-2变量得命名规则


1、变量名的首字母不能为数字
字母、数字、下划线(其他特殊字符都不行)
系统关键字 不能用在变量名中  保留关键字
举例不能用 and=    if=   type虽然可以用,但是不推荐 。
变量名 区分大小写
变量没有类型限制


a= '1'
a= 1
a= (1,2,3)
a= {1,2,3}


2、
a=1
b=a
a=3
得print(b)    回车得1  定义了B=A  那么B不会随着A变化而变化


复杂一点


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]
B随着A变化而变化


为什么这样?
上面是int值类型    而下面例子list是引用类型
值类型:int  str tuple       不可改变
引用类型:list  set dict      可变


a='hello'
>>> a='python'
>>> print(a)
python




>>> a='hello'
>>> a=a+'python'
>>> print(a)
hellopython


验证如下: 改变后字符串的内存ID也变了
>>> b='hello'
>>> id(b)
1358140514464
>>> b=b+'python'
>>> id(b)
1358140457328


5-4 列表的可变和元组的不可变


>>> a=[1,2,3]
>>> id(a)
1496439070216
>>> hex(id(a))
'0x15c6ab81e08'
>>> a[0]='12'
>>> id(a)
1496439070216


>>> a=(1,2,3)
>>> a[0]='1'
Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    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 "<pyshell#11>", line 1, in <module>
    c.append(4)
AttributeError: 'tuple' object has no attribute 'append'
>>>


能用元组用元组,尽量别用列表,这样错的话,会报错。


>>> a=(1,2,3,[1,2,4])
如果想得到数字4 需要
>>> 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[3][2]='4'
>>> print(a)
(1, 2, 3, [1, 2, '4'])


5-5运算符
+ - * /  //   
2**5  代表2的5次方
插图运算符---------------------------------------------




5-6


除了运算符,还有赋值
>>> c=1
>>> c=c+1
>>> print(c)
2
>>> c+=1
>>> print(c)
3


c=c+1  其实也就是  c+=1  这就是+=的用法。
再例如:
>>> b=2
>>> a=3
>>> b+=a
>>> print(b)
5
再继续:
>>> b-=a
>>> print(b)
2


说明b-=a    等于b=b-a


再继续
>>> b*=a
>>> print(b)
6
说明b*=a   等于b=b*a






5-7 关系运算法  可以理解为比较运算符


不仅仅是数字的比较  字符串也可以比较
举例
>>> 1==1
True                            会得到一个bool值
>>> 1>1
False
>>> 1>=1                   >=表示大于或者等于
True
>>>






>>> a=1
>>> b=2
>>> a!=b                         !=表示不等于
True




>>> b=1
>>> b+=b>=1
>>> print(b)
2


5-8   不只是数字才能做比较运算
为什么等于2呢?


>>> print(b>1)
True
>>> int(True)
1
所以b=b+1






>>> 'a'  >  'b'
False
因为
>>> ord('a')
97
>>> ord('b')
98


>>> 'abc'  <  'abd'
True


但是
>>> ord('abc')  会报错
在两组字符做比较时候,系统会拿第一个字符和第二个字符做比较。
>>> ord('c') < ord('d')
True


因为
>>> print(ord('c'),ord('d'))
99 100




>>> [1,2,3]<[2,3,4]
True
说明列表可以比较


>>> (1,2,3)<(1,3,3)
True
说明元组可以比较


5-9 逻辑运算符
主要是来操作bool布尔类型,返回也是bool布尔类型。


and  是且的意思  如果有两个条件都true 结果才能TRUE
>>> True and True
True
>>> True and False
False




or是或的意思
>>> True or True
True
>>> False or False
False


no是否则意思
>>> not  True
False


>>> not not True
True


>>> 1 and 1
1
>>> 'a' and 'b'
'b'
>>> 'a' or 'b'
'a'


因为
>>> not  True
False
所以
>>> not 'b'
False




int  float   0会被认为是False  非0 表示True
>>> not 0.1
False


空字符串
>>> not ''
True


>>> not '0'           这里的'0'  不少0 是字符串
False


[]空的列表是False   ,  True
>>> not []
True


>>> not [1,2]
False


tuple set dict 同样遵循[] 规则


一个有元素的列表和一个没有元素的列表
>>> [1] or []
[1]
>>> []or[1]
[1]


>>> [1] or (not [1,2])
[1]
会得到True那个    未必会出现布尔




>>> 'a' and 'b'
'b'
>>> '' and 'b'
''
总结-------------
not:
>>> not 0
True
not 会返回    True


and:
and  是且的意思  如果有两个条件都true 结果才能TRUE
>>> 1 and 0
0
>>> 0 and 1
0


>>> 1 and 2
2
>>> 2 and 1
1
如果两个都是,就取第二个数(类似搬箱子,你给我一个箱子我检查可用,再给我第二箱子,我检查可用。那么你要箱子时候,我会把上面那个箱子还给你。)




or:
>>> 0 or 1
1
>>> 1 or 0
1
>>> 1 or 2
1
>>> 2 or 1
2

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
wangzhen666 + 1 + 1 我很赞同!

查看全部评分

linyii 发表于 2020-12-24 20:40
挺好,感谢分享
赵和杰 发表于 2020-12-24 20:40
老哥,可以学习一下使用markdown记笔记,几个小时就可以学会了。可以用Typora这个软件来写markdown。这样记笔记,不仅方便而且美观。你可以参考这几篇博客来学习https://blog.csdn.net/qq_45359344/category_10136235.html
jinlizhu 发表于 2020-12-24 21:15
真是一位有心人
Youiix 发表于 2020-12-24 21:27
谢谢,希望可以一直更新
久住飞鸟 发表于 2020-12-24 21:30
感谢楼主的分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-29 09:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表