参考文献

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. Centos7常见问题及解决方法

    1,在Centos7中用MariaDB代替了mysql数据库 2,mysql报错:/usr/sbin/mysqld:unknown variable 'default-character-set=ut ...

  2. WorldWind源码剖析系列:代理助手类ProxyHelper

    代理助手类ProxyHelper通过平台调用的互操作技术封送了若干Win32结构体和函数.该类类图如下. 提供的主要处理方法基本上都是静态函数,简要描述如下: 内嵌类型WINHTTP_AUTOPROX ...

  3. JS动态生成表格后 合并单元格

    JS动态生成表格后 合并单元格 最近做项目碰到表格中的单元格合并的问题,需求是这样的,首先发ajax请求 请求回来后的数据 动态生成表格数据,但是生成后如果编号或者(根据其他的内容)有相同时,要合并单 ...

  4. PAT B1018 锤子剪刀布 (20 分)

    大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算最大. 输入格式: 输入第 1 行给出正整数 ...

  5. Docker一键部署Hadoop心得(二)

    今天在运行MapReduce程序时,虽然wordcount实例运行成功了,但后面出现了重新使用历史服务器失败的错误 17/12/22 13:33:19 INFO ipc.Client: Retryin ...

  6. 20155328 《网络对抗》 实验八:Web基础

    20155328 <网络对抗> 实验八:Web基础 实验内容及过程记录 一.Web前端HTML 我们的kali是默认安装好了apache的.首先输入netstat -tupln |grep ...

  7. LCA的一些算法

    LCA,就是求树上任意两点的最近公共祖先 (本题图片与代码均为Luogu3379) 方法我好像讲过一个,这次把主要的三个一起讲一讲 <1> 倍增(O(n log n)) 我们先考虑最基本的 ...

  8. Linux内核中_IO,_IOR,_IOW,_IOWR宏的用法

    #define _IO(type,nr)        _IOC(_IOC_NONE,(type),(nr),0) #define _IOR(type,nr,size)    _IOC(_IOC_RE ...

  9. Scala学习(三)----数组相关操作

    数组相关操作 摘要: 本篇主要学习如何在Scala中操作数组.Java和C++程序员通常会选用数组或近似的结构(比如数组列表或向量)来收集一组元素.在Scala中,我们的选择更多,不过现在我们先假定不 ...

  10. WinDbg命令三部曲

    WinDbg 命令三部曲:(一)WinDbg 命令手册 WinDbg 命令三部曲:(二)WinDbg SOS 扩展命令手册 WinDbg 命令三部曲:(三)WinDbg SOSEX 扩展命令手册