参考文献

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. POJ3801 Crazy Circuits

    嘟嘟嘟 上下界网络流之最小流. 建图不说啦,裸的. 在有附加源\(S\)和附加汇\(T\)的图上跑完后,删除和\(S, T\)相连的边.然后因为可能流多了,所以现在应该退流,于是我们从\(t\)到\( ...

  2. Fuel 30 分钟快速安装OpenStack

    一直以来,对于openstack 的初学者来讲,安装往往是入门的头大难题.在E版本之前,要搭建一个基本能用的openstack 环境那是相当麻烦,自己要装机,自己搞源,自己照着文档敲命令,又没有靠谱的 ...

  3. resnet模型详细结构

    resnet有5个stage,每个stage缩小一倍(即stride2).第1个stage是7*7个卷积大的缩小1倍,第2个stage是通过max-pooling缩小1倍,后面3个stage都是在各自 ...

  4. Mysql从库复制的2个问题

    .为什么执行stop slave; 再start slave;可以继续主从关系呢? 其实执行stop slave;就是分别关闭了I/O线程(stop slave IO_THREAD;)和SQL线程(s ...

  5. Java安全通信:HTTPS与SSL

    转载地址:http://www.cnblogs.com/devinzhang/archive/2012/02/28/2371631.html Java安全通信:HTTPS与SSL 1. HTTPS概念 ...

  6. TortoiseSVN 只取下或更新部分文件的方法(Sparse Update/Sparse Checkout)

    Sparse Update/Sparse Checkout   To easily select only the items you want for the checkout and force ...

  7. Usaco2012-2013 金组 题解 (暂缺Hill walk以及Figue eight)

    https://files.cnblogs.com/files/Winniechen/usaco2012-2013.pdf 做的不是很好,还请见谅! 如果有什么疑问,可以QQ上找我. QQ号:1967 ...

  8. CM (Cloudera Manager) 的安装,便于CDH的离线部署

    一.准备工作 主机个数:n台 操作系统:CentOS 6.5 安装所需软件包: CM: cloudera-manager-el6-cm5.4.3_x86_64.tar.gz CDH parcel: C ...

  9. POJ 2299

    上课讲了下数据结构,因为暂时没找到分块的板子题,所以做一下这道题加深一下对树状数组的理解. 题意就是求逆序对,从逆序对的定义就可以看出,方法有两种:归并 or 树状数组. 感觉树状数组更高级一点,写起 ...

  10. [Deep-Learning-with-Python]基于Keras的房价预测

    预测房价:回归问题 回归问题预测结果为连续值,而不是离散的类别. 波士顿房价数据集 通过20世纪70年代波士顿郊区房价数据集,预测平均房价:数据集的特征包括犯罪率.税率等信息.数据集只有506条记录, ...