设为首页 收藏本站
查看: 1119|回复: 0

[经验分享] Python学习记录day2-ygqygq2

[复制链接]

尚未签到

发表于 2018-8-12 08:31:23 | 显示全部楼层 |阅读模式
  今天,跟着Alex喝了心灵的鸡汤:Be a new gentlmen

  •   着装得体
  •   每天洗澡
  •   适当用香水
  •   女士优先
  •   不随地吐痰、不乱扔垃圾、不在人群中抽烟
  •   不大声喧哗
  •   不插队、碰到别人要说抱歉
  •   不在地铁上吃东西
  •   尊重别人的职业和劳动
  •   尊重别人隐私,不随便打听别人工资
  •   与人保持安全距离(1米)


  •   多去旅行,一年至少一个国家
  •   多看书,电影,一年15本书,50+部电影
  •   学好英语
  •   保持不甘心、保持正能量
  •   做事件一定要学会换位思考,要想此事会不会给别人造成不好的困扰
  •   积极影响身边的人
  推荐读书

  •   《三体》
  •   《百年孤独》
  常量:用全部大写字母命名变量名
  引入模块:
import os  #推荐一行一个  安装模块:
pip install pandas  os模块执行系统命令:
os.system("df")  
os.popen("ifconfig").read()
  .pyc是什么?
  Python是一门基于虚拟机的语言,pyc 是由py文件经过编译后二进制文件,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python 的虚 拟机来执行的。
  数据类型
  1.数字
  int(整型)
  32位系统:-2**31-1~2**31-1
  64位系统:-2**63-1~2**63-1
  type()函数用于输出数据类型
  long(长整型)
  float(浮点型)
  2.布尔值
  真或假
  1或0
  3.字符串
  推荐使用格式化输出:
Y = "test"  
str  = "This is a %s" %Y
  
print (str)
  PS:字符串是%s;整数是%d;浮点数是%f
  +号拼接字符串,效率低,因为其使用了多块内存空间。
  字符串
  字符串常用功能

  •   移除空白
  •   分割
  •   索引
  •   切片
  •   长度
  字符串操作
  删除空格
>>> name="abc  "  
>>> name=name.strip()
  
>>> name
  
'abc'
  分割字符串
>>> user="jim|jack"  
>>> print(user.split("|"))
  
['jim', 'jack']
  判断是否有空格
>>> name="jim jack"  
>>> print(' ' in name)
  
True
  首字母大写
>>> print(name.capitalize())  
Jim jack
  格式化输出字符串
>>> msg = "Hello, {name}, I am fine"  
>>> msg.format(name="Jimme")
  
'Hello, Jimme, I am fine'
  
>>> msg2="hahaha{0}, dddd{1}"
  
>>> print(msg2.format('Ini',33))
  
hahahaIni, dddd33
  切片
>>> name="This is a test1,and what's your name"  
>>> print(name[2:7])
  
is is
  查找
>>> print(name.find('test'))  
10
  
>>> print(name.find('tTTTT'))
  
-1
  按长度填充字符串
>>> print(name.center(40,'x')  
... )
  
xxThis is a test1,and what's your namexx
  字符串是否为数字
>>> age="27"  
>>> print(age.isdigit())
  
True
  字符串是否包含数字、开头、结局是否包含字符
>>> name = "test01"  
>>> print(name.isalnum())
  
True
  
>>> print(name.endswith("df"))
  
False
  
>>> print(name.startswith("df"))
  
False
  字符串大小写转换
>>> print(name.upper(),name.lower())  
TEST01 test01
  列表
  列表基本操作:

  •   索引
  •   切片
  •   追加
  •   删除
  •   长度
  •   切片
  •   循环
  •   包含
  切片:取多个元素  
>>> name = ["abc","jack",1,2,3,4]  
>>> name[-3:-1]
  
[2, 3]
  
>>> name[-3:0]
  
[]
  
>>> name[-3:]
  
[2, 3, 4]
  
>>> name[:1]
  
['abc']
  
>>> name[:2]
  
['abc', 'jack']
  切片后再切片
>>> name[:2][:1][0]  
'abc'
  
>>> name[:2][:1][0][1]
  
'b'
  修改列表元素
>>> name[3]="xiaoming"  
>>> name
  
['abc', 'jack', 1, 'xiaoming', 3, 4]
  插入
>>> name.insert(2,"wangou")  
>>> name
  
['abc', 'jack', 'wangou', 1, 'xiaoming', 3, 4]
  追加
>>> name.append("mac")  
>>> name
  
['abc', 'jack', 'wangou', 1, 'xiaoming', 3, 4, 'mac']
  删除
>>> name.remove(3)  
>>> name
  
['abc', 'jack', 'wangou', 1, 'xiaoming', 4, 'mac']
  删除是只删除一个
>>> name.append("mac")  
>>> name
  
['abc', 'jack', 'wangou', 1, 'xiaoming', 4, 'mac', 'mac']
  
>> name.remove("mac")
  
>>> name
  
['abc', 'jack', 'wangou', 1, 'xiaoming', 4, 'mac']
  
>>> print(name[::2])
  
['abc', 'wangou', 'xiaoming', 'mac']
  元素是否在列表中,查找元素个数,查找元素位置
>>> name  
['abc', 'jack', 'wangou', 1, 'xiaoming', 4, 'mac']
  
>>> print(1 in name)
  
True
  
>>> print(name.count(4))
  
1
  
>>> print(name.index(4))
  
5
  扩展(合并列表)
>>> name2=["zhangzi","lizi","wangba"]  
>>> name.extend(name2)
  
>>> print(name)
  
['abc', 'jack', 'wangou', 1, 'xiaoming', 4, 'mac', 'zhangzi', 'lizi', 'wangba']
  反序排列元素
>>> name.reverse()  
>>> print(name)
  
['wangba', 'lizi', 'zhangzi', 'mac', 4, 'xiaoming', 1, 'wangou', 'jack', 'abc']
  元素排序(版本3不支持字符与数字排序)
>>> name.sort()  
Traceback (most recent call last):
  
  File "<stdin>", line 1, in <module>
  
TypeError: unorderable types: int() < str()
  
>>> name
  
['lizi', 'mac', 'wangba', 'zhangzi', 4, 'xiaoming', 1, 'wangou', 'jack', 'abc']
  
>>> name=[1,3,2,4]
  
>>> name.sort()
  
>>> print(name)
  
[1, 2, 3, 4]
  移除元素(默认移除最后一个元素)
>>> name.pop()  
4
  
>>> print(name)
  
[1, 2, 3]
  移除指定元素
>>> name.pop(1)  
2
  
>>> print(name)
  
[1, 3]
  拷贝
>>> name3 = name.copy()  
>>> print(name3)
  
[1, 3]
  拷贝时,第一层的元素(非列表)不会改变,元素为列表时与变量赋值一样,内存地址不变,所以2个列表内,元素为列表内的元素变化时,2个列表也一起改变
>>> name=[1,2,3,[1,2,3,4],4]  
>>> name2 = name.copy()
  
>>> name2
  
[1, 2, 3, [1, 2, 3, 4], 4]
  
>>> name[3][2]="TTT"
  
>>> name
  
[1, 2, 3, [1, 2, 'TTT', 4], 4]
  
>>> name2
  
[1, 2, 3, [1, 2, 'TTT', 4], 4]
  
>>> name[2]="AAA"
  
>>> name
  
[1, 2, 'AAA', [1, 2, 'TTT', 4], 4]
  
>>> name2
  
[1, 2, 3, [1, 2, 'TTT', 4], 4]
  删除列表
>>> del name2  
>>> name2
  
Traceback (most recent call last):
  
  File "<stdin>", line 1, in <module>
  
NameError: name 'name2' is not defined
  元组:不能被修改
  基本操作:

  •   索引
  •   切片
  •   循环
  •   长度
  •   包含
>>> r=(1,2,3,4,5)  
>>> r
  
(1, 2, 3, 4, 5)
  
>>> type(r)
  
<class 'tuple'>
  
>>> r[2]=1
  
Traceback (most recent call last):
  
  File "<stdin>", line 1, in <module>
  
TypeError: 'tuple' object does not support item assignment
  数据运算符
  和其它语言一样,python也支持进行各种各样的数学和逻辑运算,我们一起来看一些。
  python语言支持以下几种运算
  算术运算
  比较运算
  Assignment Operators
  二进制运算
  关系运算
  验证运算
  算术运算
  运算符
  描述
  示例
  +
  加法运算
  a + b 得 30
  -
  减法运算
  a - b 得 -10
  *
  乘法运算
  a * b 得 200
  /
  除法运算
  b / a 得 2
  %
  取模 - 将%号左边的值除以%号右边的值并且将得到的结果的余数返回
  10%5得0 ,10%3 得1, 20%7 得6
  **
  幂 - 返回x的y次幂,就是返回多少次方
  2**8 得256
  //
  取整除 - 返回x除以y的商的整数部分
  9//2得4 , 9.0//2.0得4.0
  
  
  
  
  
  比较运算
  运算符
  描述
  示例
  ==
  判断两个对象是否相等
  (a == b) is not true.
  !=
  判断两个对象是否不相等
  (a != b) is true.
  <>
  判断两个对象是否不相等
  (a <> b) is true. 与 != 运算符一样.
  >
  大于 - 返回a是否大于b
  (a > b) is not true.
  <
  小于 - 返回a是否小于b
  (a < b) is true.
  >=
  大于等于 - 返回a 是否大于等于b
  (a >= b) is not true.
  <=
  小于等于 - 返回a 是否小于等于b
  (a <= b) is true.
  
  
  
  
  
  赋值运算
  运算符
  描述
  示例
  =
  赋值 - 将右边的值赋值给左边的变量名
  c = a + b 将会把a+b的结果赋值给c
  +=
  自加赋值 - 将+=号左边的值与+=号右边的值相加,然后再把结果赋值给+=号左右的值
  c += a相当于 c = c + a
  -=
  自减赋值
  c -= a相当于 c = c - a
  *=
  自乘赋值
  c *= a 相当于 c = c * a
  /=
  自除赋值
  c /= a 相当于 c = c / a
  %=
  自取模赋值
  c %= a 相当于 c = c % a
  **=
  自求幂赋值
  c **= a 相当于 c = c ** a
  //=
  自取整赋值
  c //= a 相当于 c = c // a
  按位运算(二进制运算)
  二进制位数
  8
  7
  6
  5
  4
  3
  2
  1
  每位所代表的数字
  128
  64
  32
  16
  8
  4
  2
  1
  60
  0
  0
  1
  1
  1
  1
  0
  0
  13
  0
  0
  0
  0
  1
  1
  0
  1
  2个10进制数字的位运算
  运算符
  描述
  示例
  &
  与运算,这个二进制位必须在2组数中都为真,结果才返回真
  (a & b)得12,二进制位: 0000 1100
  |
  或运算,这个二进制位只需在其中一组数据中为真即返回真
  (a | b)得 61,二进制位: 0011 1101
  ^
  异或运算,只要这个二进制位在两组数据中不相同就返回真
  (a ^ b)得 49 ,二进制位: 0011 0001
  <<
  左移运算,将a整体向左移2位
  a << 2得240,二进制位: 1111 0000
  >>
  右移运算,将a整体向左移3位
  a >> 3得 7 ,二进制位: 0000 0111
  看下面的运算过程:
  二进制位
  8
  7
  6
  5
  4
  3
  2
  1
  结果
  每位所代表的数字
  128
  64
  32
  16
  8
  4
  2
  1
  60
  0
  0
  1
  1
  1
  1
  0
  0
  13
  0
  0
  0
  0
  1
  1
  0
  1
  &与运算
  0
  0
  0
  0
  1
  1
  0
  0
  12
  |或运算
  0
  0
  1
  1
  1
  1
  0
  1
  61
  ^异或运算
  0
  0
  1
  1
  0
  0
  0
  1
  49
  a<<2
  1
  1
  1
  1
  0
  0
  0
  0
  240
  a>>3
  0
  0
  0
  0
  0
  1
  1
  1
  7
  逻辑运算符and or not
  关系运算符in not in
  验证运算符is is not
  
  字典
id_db = {  
    42342323232: {
  
        'name': "Yangkun",
  
        'age': 23,
  
        'addr': 'Dongbei'
  
    },
  
    23232424224: {
  
        'name': 'Guojin',
  
        'age': 22,
  
        'addr': 'Hubei'
  
    }
  
}
  字典的特性:

  •   dict是无序的
  •   key必须是唯一的,so 天生去重
  增加
>>> id_db[322323232332]={  
...     'name':'Guojia',
  
...     'age':45,
  
...     'addr':'Changan'
  
... }
  
>>>
  
>>> print(id_db)
  
{42342323232: {'addr': 'Dongbei', 'age': 23, 'name': 'Yangkun'}, 23232424224: {'addr': 'Hubei', 'age': 22, 'name': 'Guojin'}, 322323232332: {'addr': 'Changan', 'age': 45, 'name': 'Guojia'}}
  修改
>>> id_db[23232424224]['age']=32  
>>> print(id_db)
  
{42342323232: {'addr': 'Dongbei', 'age': 23, 'name': 'Yangkun'}, 23232424224: {'addr': 'Hubei', 'age': 32, 'name': 'Guojin'}, 322323232332: {'addr': 'Changan', 'age': 45, 'name': 'Guojia'}}
  删除
>>> id_db[23232424224].pop("addr")  
'Hubei'
  
>>> print(id_db)
  
{42342323232: {'addr': 'Dongbei', 'age': 23, 'name': 'Yangkun'}, 23232424224: {'age': 32, 'name': 'Guojin'}, 322323232332: {'addr': 'Changan', 'age': 45, 'name': 'Guojia'}}
  返回指定键的值,如果值不在字典中返回默认值
>>> tmp = id_db.get(23232424224)  
>>> print(tmp)
  
{'age': 32, 'name': 'Guojin'}
  更新
>>> dic2 = {  
...     42342323232: {
  
...         'name': "Yangkun",
  
...         'age': 23,
  
...         'addr': 'Shangdong'
  
...     }
  
... }
  
>>> id_db.update(dic2)
  
>>> print(id_db)
  
{42342323232: {'addr': 'Shangdong', 'age': 23, 'name': 'Yangkun'}, 23232424224: {'age': 32, 'name': 'Guojin'}, 322323232332: {'addr': 'Changan', 'age': 45, 'name': 'Guojia'}}
  返回元组对的列表
>>> print(id_db.items())  
dict_items([(42342323232, {'addr': 'Shangdong', 'age': 23, 'name': 'Yangkun'}), (23232424224, {'age': 32, 'name': 'Guojin'}), (322323232332, {'addr': 'Changan', 'age': 45, 'name': 'Guojia'})])
  以列表返回字典中的所有值
>>> print(id_db.values())  
dict_values([{'addr': 'Shangdong', 'age': 23, 'name': 'Yangkun'}, {'age': 32, 'name': 'Guojin'}, {'addr': 'Changan', 'age': 45, 'name': 'Guojia'}])
  以列表返回一个字典所有的键
>>> print(id_db.keys())  
dict_keys([42342323232, 23232424224, 322323232332])
  key是否存在于字典中
>>> 42342323232 in id_db  
True
  get()方法类似, 如果键不已经存在于字典中,将会添加键并将值设为默认值
>>> id_db.setdefault(42342323232)  
{'addr': 'Shangdong', 'age': 23, 'name': 'Yangkun'}
  
>>> print(id_db)
  
{42342323232: {'addr': 'Shangdong', 'age': 23, 'name': 'Yangkun'}, 23232424224: {'age': 32, 'name': 'Guojin'}, 322323232332: {'addr': 'Changan', 'age': 45, 'name': 'Guojia'}, 4: None}
  用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值
>>> print(dict.fromkeys([1,2,3,4,33,32],"TTTTEST"))  
{32: 'TTTTEST', 1: 'TTTTEST', 2: 'TTTTEST', 3: 'TTTTEST', 4: 'TTTTEST', 33: 'TTTTEST'}
  随机删除一个元素
>>> print(id_db.popitem())  
(42342323232, {'addr': 'Shangdong', 'age': 23, 'name': 'Yangkun'})
  
>>> print(id_db)
  
{23232424224: {'age': 32, 'name': 'Guojin'}, 322323232332: {'addr': 'Changan', 'age': 45, 'name': 'Guojia'}, 4: None}
  循环字典(效率低,因为有一个dict to list的转换过程)
>>> for k,v in id_db.items():  
...     print(k,v)
  
...
  
23232424224 {'age': 32, 'name': 'Guojin'}
  
322323232332 {'addr': 'Changan', 'age': 45, 'name': 'Guojia'}
  
4 None
>>> for key in id_db:   #效率高  
...     print(key,id_db[key])
  
...
  
23232424224 {'age': 32, 'name': 'Guojin'}
  
322323232332 {'addr': 'Changan', 'age': 45, 'name': 'Guojia'}
  
4 None

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-550424-1-1.html 上篇帖子: Python Flask环境搭建 下篇帖子: CentOS7.3安装Python3.6
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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