文档章节

Python学习记录day2

ygqygq2
 ygqygq2
发布于 2016/11/20 12:05
字数 2548
阅读 3
收藏 0
点赞 0
评论 0

今天,跟着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


本文出自 “ygqygq2” 博客,谢绝转载!

本文转载自:http://ygqygq2.blog.51cto.com/1009869/1862295

共有 人打赏支持
ygqygq2
粉丝 0
博文 12
码字总数 9366
作品 0
珠海
程序员
20行代码用python实现一个钩子

最近在玩键盘监控,于是有了这么一个文章,鄙人做成的成品是获取到某某人在某某网登录的时候(仅限某某网)会把字符串跟截图统统发到鄙人邮箱,当然只是做着玩的,大家不要想去干坏事哈!以下...

python达人 ⋅ 04/20 ⋅ 0

Mac下python2与python3共存问题

python从入门到放弃; mac os系统里面自带了python2,当我们需要学习python3的时候就要自己安装python3,就会出现python2与python3共存。新手不懂就会出现一系列的问题。 比如安装库的时候就...

服说八道 ⋅ 01/05 ⋅ 0

Python 数据挖掘学习 一 结巴分词

近期,想对古典小说进行索引,和知识挖掘,所以研究了下python数据挖掘方面的知识 Python安装 python学习 一 python语法,及变量类型 python学习 二 爬一个图片网站上 python学习 二 02 爬一...

shuilan0066 ⋅ 01/22 ⋅ 0

学习Python必去的8个网站!

作为一个现时代的程序员初学者,除了看书之外,互联网的学习手段也是断不能少的! 以下这些网站,虽说不上全方位的满足你的需求,但是大部分也都能! 0.国外的大神GitHub : https://github...

W3Cschool ⋅ 06/14 ⋅ 0

不是你学不会Python,只说你的学习方法不对!那如何学习Python呢

有没有那么一个瞬间,你想放弃学习Python? 做任何事情一定有在短期内简单可行的方法。学习不应该是苦差事,而应该是快乐的,重要的是找到适合自己的学习方法。 很多人觉得自己一定能够自学好...

Python燕大侠 ⋅ 06/06 ⋅ 0

给伸手党的福利:Python 新手入门引导

这是一篇 Python 入门指南,针对那些没有任何编程经验,从零开始学习 Python 的同学。不管你学习的出发点是兴趣驱动、拓展思维,还是工作需要、想要转行,都可以此文作为一个参考。 在这个信...

crossin ⋅ 06/15 ⋅ 0

推荐几本对于Python初学者比较好的书籍(内含PDF)

我们提供一个初学者最好的Python书籍列表。Python是一个初级程序员可以学习编程的最友好语言之一。为了帮助您开始使用Python编程,我们分享此列表。泡一杯茶,选一本书阅读,开始使用Python编...

柯西带你学编程 ⋅ 06/08 ⋅ 0

想用 Python 找到一份好工作?这4种工作最热门!

身边有不少朋友最近都开始学习python,大多都在学了一两个月之后来问小编,我现在已经入行了,能去找什么样的工作呢? 小编只能说: 入行!=找工作 那么,自学python的人,如何才能找到满意的工...

python达人 ⋅ 05/16 ⋅ 0

7个实战案例、24个学习视频、12G干货资料...带你免费入门《Python数据分析》!...

相信许多做数据的都有这样的经历: 你花大半天整合了一张数据表,却因为其他部门的错误,导致表格结构全错了!于是你又要吭哧吭哧重新来过...... 每次数据都重复洗一遍,还这么慢,要是有一劳...

tw6cy6ukydea86z ⋅ 05/23 ⋅ 0

为什么python突然变得这么火了?

可能会有一种感觉python突然之间变得这么火热了,个人感觉还是雷声大雨点小,真正用pytho落地的东西还是少,不可否认的python前途无量,现在人工智能的调用框架选择了python。所以目前阶段选...

Python燕大侠 ⋅ 05/10 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JavaScript零基础入门——(十一)JavaScript的DOM操作

JavaScript零基础入门——(十一)JavaScript的DOM操作 大家好,欢迎回到我们的JavaScript零基础入门。最近有些同学问我说,我讲的的比书上的精简不少。其实呢,我主要讲的是我在开发中经常会...

JandenMa ⋅ 29分钟前 ⋅ 0

volatile和synchronized的区别

volatile和synchronized的区别 在讲这个之前需要先了解下JMM(Java memory Model :java内存模型):并发过程中如何处理可见性、原子性、有序性的问题--建立JMM模型 详情请看:https://baike.b...

MarinJ_Shao ⋅ 56分钟前 ⋅ 0

深入分析Kubernetes Critical Pod(一)

Author: xidianwangtao@gmail.com 摘要:大家在部署Kubernetes集群AddOn组件的时候,经常会看到Annotation scheduler.alpha.kubernetes.io/critical-pod"="",以表示这是一个关键服务,那你知...

WaltonWang ⋅ 今天 ⋅ 0

原子性 - synchronized关键词

原子性概念 原子性提供了程序的互斥操作,同一时刻只能有一个线程能对某块代码进行操作。 原子性的实现方式 在jdk中,原子性的实现方式主要分为: synchronized:关键词,它依赖于JVM,保证了同...

dotleo ⋅ 今天 ⋅ 0

【2018.06.22学习笔记】【linux高级知识 14.4-15.3】

14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp

lgsxp ⋅ 今天 ⋅ 0

JeeSite 4.0 功能权限管理基础(Shiro)

Shiro是Apache的一个开源框架,是一个权限管理的框架,实现用户认证、用户授权等。 只要有用户参与一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户...

ThinkGem ⋅ 昨天 ⋅ 0

python f-string 字符串格式化

主要内容 从Python 3.6开始,f-string是格式化字符串的一种很好的新方法。与其他格式化方式相比,它们不仅更易读,更简洁,不易出错,而且速度更快! 在本文的最后,您将了解如何以及为什么今...

阿豪boy ⋅ 昨天 ⋅ 0

Python实现自动登录站点

如果我们想要实现自动登录,那么我们就需要能够驱动浏览器(比如谷歌浏览器)来实现操作,ChromeDriver 刚好能够帮助我们这一点(非谷歌浏览器的驱动有所不同)。 一、确认软件版本 首先我们...

blackfoxya ⋅ 昨天 ⋅ 0

线性回归原理和实现基本认识

一:介绍 定义:线性回归在假设特证满足线性关系,根据给定的训练数据训练一个模型,并用此模型进行预测。为了了解这个定义,我们先举个简单的例子;我们假设一个线性方程 Y=2x+1, x变量为商...

wangxuwei ⋅ 昨天 ⋅ 0

容器之查看minikue的environment——minikube的环境信息

执行如下命令 mjduan@mjduandeMacBook-Pro:~/Docker % minikube docker-envexport DOCKER_TLS_VERIFY="1"export DOCKER_HOST="tcp://192.168.99.100:2376"export DOCKER_CERT_PATH="/U......

汉斯-冯-拉特 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部