参考文献

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. MyBatis之Collection

    Collection翻译过来,意为"集合"的意思,既然是集合,肯定是代表多个. MyBatis以其自身,小巧易懂,闻名于JavaEE. 传统的JDBC就不说了,Hibernate记 ...

  2. Ubuntu16.04安装Zabbix3.2(快速安装教程)

    ubuntu16.04下zabbix安装和配置 上面这篇虽然是一样的,但是针对的版本有差异,版本差异,安装方式也就有差异,对要求的环境可能有所不同. 今天帮同事安装zabbix,按照如下几个步骤,就完 ...

  3. Java之时间转换

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = sdf.parse( ...

  4. gettimeofday()函数来得到时间

    gettimeofday()函数的使用方法: 1.简介: 在C语言中可以使用函数gettimeofday()函数来得到时间.它的精度可以达到微妙 2.函数原型: #include<sys/tim ...

  5. RC Calculation

    scenario 定义中包括 Mode.Corner.RC 其中 Corner (PVT)用于计算 cell delay 而 RC 用于计算 net delay 本文简要介绍如何使用 RC 参数来计算 ...

  6. 2019年春季学期《C语言程序设计II》助教注意事项

    本学期<C语言程序设计II>课程安排 理论课时24(1-12周),实验课时8(13周),课程设计课时16(14-15周) 理论课教学内容 附:教学进度表 本学期实验课和课程设计参考教材 & ...

  7. openstack vm ping 114.114.114.114

    route add -net 0.0.0.0 netmask 0.0.0.0 gateway 192.168.0.131 route del -net 0.0.0.0 netmask 0.0.0.0 ...

  8. intellij idea新建maven项目,一直loading archetype list.....

    不知道什么时候开始,在idea里新建maven项目时,在new module页面,一直显示loading archetype list....,导致一直没办法新建.后来我以为是防火墙问题,各种设置还是 ...

  9. boot.img的修改

    个文件:boot.img.system.img.userdata.img.其中boot.img 存放着内核以及Android系统的配置信息,比如android系统各文件夹的读写权限,adb 的权限.所 ...

  10. 20155209 林虹宇Exp2 后门原理与实践

    Exp2 后门原理与实践 实验内容 一.使用netcat获取主机操作Shell,cron启动 使用netcat获取主机操作Shell Win获得Linux Shell 查看win的ip地址 windo ...