参考文献

1.环境安装

  1.1 python 工作环境 2.7.14

  1.2 pycharm community2018.1.1 4 x64

2.第一行代码

  2.1 python交互模式,

     >>>10+20

    30

    exit() 可退出交互模式。

  2.2 运行.py文件  在命令行模式(.py文件所在文件夹)输入

    python test.py

  Python交互式环境会把每一行Python代码的结果自动打印出来,但是,直接运行Python代码却不会。

  2.3 hello.py(输入与输出)

print 'please input your name'
name=raw_input()
print'hello',name

3.python基础

  3.1 数据类型

    3.1.1整数 1, 100 ,-8

      需要注意的是,整数的除法也是准确的 。python的除法分为两种,

      第一种:/结果为浮点数。

>>> 10 / 3
3.3333333333333335
>>> 9 / 3
3.0

    第二种 // 地板除 结果为整数

>>> 10 // 3
3
>>> 9 //3
3

    3.1.2浮点数 1.23   、1.23x10(1.23e9,12.3e8),0.000012(1.2e-5)

    3.1.3字符串 注意字符串中包含'' ""等时,需要转义字符\

>>> print 'I\'m \"ok\".'
I'm "ok".
>>> print '\\\n\\'
\
\

    字符串的多行输入:

>>> print '''line1
... line2
... line'''
line1
line2
line

    Python还允许用r""表示r" "内部的字符串默认不转义

>>> print'\\\t\\'
\ \
>>> print r"\\\t\\"
\\\t\\

    3.1.4布尔类型 (True False)

>>> 3 > 2
True
>>> 3 > 5
False

    3.1.5 空值 None

    3.1.6 变量

      python 弱类型 不需要说明变量的类型可直接赋值。

>>> a= 123
>>> print a
123
>>> a='ABC'
>>> print a
ABC

理解变量在计算机内存中的表示也非常重要。当我们写:

a = 'ABC'

时,Python解释器干了两件事情:

  1)在内存中创建了一个'ABC'的字符串;

  2)在内存中创建了一个名为a的变量,并把它指向'ABC'

也可以把一个变量a赋值给另一个变量b,这个操作实际上是把变量b指向变量a所指向的数据,例如下面的代码:

a = 'ABC'
b = a
a = 'XYZ'
print b

    3.1.7 常量

    PI = 3.14159265359  python 没有任何机制能保证PI 的值不被修改。

  3.2 字符串以及编码       
    3.2.1 编码   
    python 2.x中支持ASCII编码,后来又添加的对Unicode的支持。 如下。
>>> print u'中文'
中文
>>> u'中'
u'\u4e2d'

  python3.x中就可以直接使用中文了。

>>> print('包含中文的str')
包含中文的str

  3.2.2格式化

>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'

%%来表示一个%

>>> 'growth rate: %d %%' % 7
'growth rate: 7 %'

  3.3使用list和tuple

  3.3.1 list

    list是一种有序的集合,可以随时添加和删除其中的元素。

>>> classname=['Tom','YM','Mary']
>>> len(classname) #求list长度
3
>>> classname[0] #获取第一个元素
'Tom'
>>> classname[-1] #获取最后一个元素
'Mary'
>>> classname.append('KK') #向list里面插入元素
>>> classname #显示list中的元素
['Tom', 'YM', 'Mary', 'KK']
>>> classname.pop() #删除最后一个元素
'KK'
>>> classname
['Tom', 'YM', 'Mary']
>>> classname.pop(1) #删除指定位置元素
'YM'
>>> classname
['Tom', 'Mary']
>>> classname[1]='KKK' #替换指定位置元素为新元素
>>> classname
['Tom', 'KKK']

list里面的元素的数据类型也可以不同,比如:

>>> L = ['Apple', 123, True]

list元素也可以是另一个list,比如:

>>> s = ['python', 'java', ['asp', 'php'], 'scheme']
>>> len(s)
4
要注意s只有4个元素,其中s[2]又是一个list,如果拆开写就更容易理解了:
>>> p = ['asp', 'php']
>>> s = ['python', 'java', p, 'scheme']

要拿到'php'可以写p[1]或者s[2][1]

  3.3.2 tuple

   tuple一旦初始化就不可再变

>>> tuple=('','Tom','YM') #定义一个tuple
>>> tuple
('', 'Tom', 'YM')
>>> t=(1,2)
>>> t
(1, 2)
>>> t=(1,) #定义一个只有一个元素的tuple
>>> t
(1,)
>>> t=() #定义一个空的tuple
>>> t

但是如果tuple中包含list 那么tuple中的list不会变,但是list中的元素是可以改变的。

>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])

  3.4 条件判断与循环

    3.4.1 条件判断 注意else:中的:

>>> age = 3
>>> if age >= 18:
... print 'your age is', age
... print 'adult'
... else:
... print 'your age is', age
... print 'teenager'
...
your age is 3
teenager

条件判断的规则为:

if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>

 3.4.2循环

Python的循环有两种,一种是for...in循环,依次把list或tuple中的每个元素迭代出来,看例子:

names = ['Michael', 'Bob', 'Tracy']
for name in names:
print name

计算1-101的和-----5050

sum = 0
for x in range(101):
sum = sum + x
print sum

python的另外一种循环就是while 注意while后面的冒号

sum=0
n=100
while(n>0):
sum+=n
n=n-1
print sum

 3.5使用dict和set

    3.5.1 dict

      类似于java中的map 键值对形式。

>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
95

      一个key对应一个value,如果后面存入一个已经存在的key,那么新存入的value就会覆盖之前的value。

>>> d={'YM':1,'Bob':2,'KK':3} #初始化一个dict
>>> d
{'KK': 3, 'Bob': 2, 'YM': 1}
>>> d['YM'] #通过某个key获取对应的value
1
>>> 'To' in d #判断dict是否存在某个key
False
>>> d.pop('Bob') #删除dict中的某个key 这时对应的value也会一起被删除
2
>>> d
{'KK': 3, 'YM': 1}

    如果key不存在,程序报错。可通过两种方法判断一个key是否存在。

#
>>> 'Thomas' in d
False
#
>>> d.get('Thomas')
>>> d.get('Thomas', -1)
-1

dict是查找方式类似于字典,可以根据key直接得到value的存储位置。这也是一种空间换时间的方法,所以dict的特点就是查找插入的速度极快,但是占用大量内存,浪费很多内存。(list的查找方式就是顺序查找,存入的元素越多,查找速度就越慢。)

需要注意,dict的key必须是不可变对象,所以list不可以作为dict的key。

  3.5.2 set

set存储一组key但是不存储value,也就是set存储不重复的一组元素。

>>> s = set([1, 1, 2, 2, 3, 3])
>>> s
set([1, 2, 3])

基本操作:

>>> s=set([1,2,3]) #初始化一个set
>>> s
set([1, 2, 3])
>>> s=set([1,1,2,2,3,4,5]) #set保存不重复的元素,自动去重。
>>> s
set([1, 2, 3, 4, 5])
>>> s.add(7) #向set添加元素
>>> s
set([1, 2, 3, 4, 5, 7])
>>> s.remove(3) #删除set中某元素
>>> s
set([1, 2, 4, 5, 7]) >>> s1=set([1,2,3])
>>> s2=set([2,3,4])
>>> s1&s2 #对两个set求交集
set([2, 3])
>>> s1|s2 #对两个set求并集
set([1, 2, 3, 4])

set中存储的元素跟dict中的key一样,所以不能重复,也不能存入可变元素 如list。

3.5.3 不可变对象

字符串是不可变对象,而list是可变对象。

对于不可变对象 str

>>> a = 'abc'
>>> a.replace('a', 'A')
'Abc'
>>> a
'abc'

字符串调用replace函数,实际上是新建了一个字符串‘Abc’,并返回,但是a仍然指向原来的‘abc’字符串。将代码给为如下:

>>> a = 'abc'
>>> b = a.replace('a', 'A')
>>> b
'Abc'
>>> a
'abc'

需要注意,list与tuple均不可以作为dict与set的key。tuple虽然是不可变对象,但是不可变得是地址,tuple的值是可变的。

【python】自学笔记的更多相关文章

  1. python自学笔记

    python自学笔记 python自学笔记 1.输出 2.输入 3.零碎 4.数据结构 4.1 list 类比于java中的数组 4.2 tuple 元祖 5.条件判断和循环 5.1 条件判断 5.2 ...

  2. python自学笔记(一)

    我没学过python,通过网上和一些图书资料,自学并且记下笔记. 很多细节留作以后自己做项目时再研究,这样能更高效一些. python基础自学笔记 一.基本输入和输出 pthon3.0用input提示 ...

  3. python自学笔记一

    之前看过一段时间的小甲鱼零基础自学python,b站上有高清免费资源[av4050443],但是作为零基础实在学得艰难,下载了python核心编程pdf,在这里做一些笔记. 虽然使用的是第二版的教材, ...

  4. Python 自学笔记(一)环境搭建

    一,关于Python的介绍 关于Python的介绍,我不想多说了,网上随便一搜,很多介绍,这里我主要写下我的自学Python的 过程,也是为了促进我能继续学习下去. 二,环境搭建 1,这里我只讲解Wi ...

  5. python 自学笔记(四) 列表

    有几天没有更新博客了,毕竟是自学,最近事情确实比较多,有时候想学的时候反而没时间,到有时间的时候反而不想学.以后得想办法改掉这个缺点,只要有时间就要学习自己想学的东西,希望自学的同学能和我共同交流,其 ...

  6. 如何深入系统的学习一门编程语言——python自学笔记

    前言 最早接触python的时候,他并没有现在这么火,我也没把他太当回事,那时候我对python的印象就是给运维人员使用的一门很古老的语言,显然随着tensorflow(以下简称tf)的兴起,pyth ...

  7. python自学笔记二

    :#进入循环重输文0件名 pass else:#退出循环,等待创建 break fobj = open(fname,'a')#打开或创建文件 #接下来写入文件 all = [] print('ente ...

  8. Python 自学笔记(二)第一个程序 Hello World

    一 打印 Hello world 1,输入 Python “Hello world” 即可 2,脚本文件输出Hello World 在命令行(cmd),输入 python 文件路径+文件名 3,为什么 ...

  9. python自学笔记(一)简单了解python

    脚本解释型语言的内部机制 python先将脚本编译成字节码文件(pyc,pyo) python虚拟机解释并运行字节码文件 编译型语言的内部机制 先将源代码编译成机器码(机器能读懂的代码),生成可执行文 ...

  10. python自学笔记(九)python练习题

    1. 已知字符串 a = "aAsmr3idd4bgs7Dlsf9eAF",要求如下 1.1 请将a字符串的大写改为小写,小写改为大写 print a.swapcase() 1.2 ...

随机推荐

  1. 网络嗅探与欺骗(第一二部分)非平台——P201421410029

    中国人民公安大学 Chinese people’ public security university 网络对抗技术 实验报告   实验二 网络嗅探与欺骗     学生姓名 李政浩 年级 2014 区 ...

  2. oracle 删除重复数据

    1.找出重复数据 select count(1),uuid  from ts.test group by uuid having count(1)>1 order by 1 desc ;---找 ...

  3. AOP实现拦截对象以及获取切入目标方法和注解

    AOP实现拦截对象以及获取切入目标方法和注解 一.JoinPoint是什么? AspectJ使用org.aspectj.lang.JoinPoint接口表示目标类连接点对象,如果是环绕增强时,使用 o ...

  4. 使用HTML5中postMessage 实现ajax中的POST跨域问题

    HTML5中提供了在网页文档之间相互接收与发送信息的功能.使用这个功能,只要获取到网页所在窗口对象的实例,不仅仅同源(域+端口号)的web网页之间可以互相通信,甚至可以实现跨域通信. 浏览器支持程度: ...

  5. css 字体、文本、padding的样式

    一.字体的样式: 1)字体倾斜:font-style:italic 2)字体大小:font-size 一般为偶数. 3)行高:line-height   当行高为奇数的时候,是文字上面比文字下面的少一 ...

  6. Android 将若干张图片拼接在一起形成一个全新的图片

    目的:使用Android技术将若干张图片拼接成为一张图片. 最开始的两张图如下所示: 拼接后的图片如下图所示: 这样就把两张图片拼接成为一张了. 拼接步骤: 1.使用Bitmap创建一个空的Bitma ...

  7. BZOJ4999: This Problem Is Too Simple!树链剖分+动态开点线段树

    题目大意:将某个节点的颜色变为x,查询i,j路径上多少个颜色为x的点... 其实最开始一看就是主席树+树状数组+DFS序...但是过不去...MLE+TLE BY FCWWW 其实树剖裸的一批...只 ...

  8. Java基础—线程

    推荐阅读:http://www.iteye.com/topic/806990 一.起手式——基本概念 1.什么叫线程 进程:进行中的程序:作为资源分配的单位. 线程:轻量级的进程:程序里的顺序控制流, ...

  9. C# winform 设置WebBowser 内核版本

    一种是在网页头部 用 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 使用当前浏览器最新 ...

  10. 网络对抗第一次实验——PC平台逆向破解(5)M

    网络对抗第一次实验--PC平台逆向破解(5)M 实践一 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数. 操作步骤: 获取实验用文件pwn1,复制,复制出来的文件改名为20155 ...