【python】自学笔记
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】自学笔记的更多相关文章
- python自学笔记
python自学笔记 python自学笔记 1.输出 2.输入 3.零碎 4.数据结构 4.1 list 类比于java中的数组 4.2 tuple 元祖 5.条件判断和循环 5.1 条件判断 5.2 ...
- python自学笔记(一)
我没学过python,通过网上和一些图书资料,自学并且记下笔记. 很多细节留作以后自己做项目时再研究,这样能更高效一些. python基础自学笔记 一.基本输入和输出 pthon3.0用input提示 ...
- python自学笔记一
之前看过一段时间的小甲鱼零基础自学python,b站上有高清免费资源[av4050443],但是作为零基础实在学得艰难,下载了python核心编程pdf,在这里做一些笔记. 虽然使用的是第二版的教材, ...
- Python 自学笔记(一)环境搭建
一,关于Python的介绍 关于Python的介绍,我不想多说了,网上随便一搜,很多介绍,这里我主要写下我的自学Python的 过程,也是为了促进我能继续学习下去. 二,环境搭建 1,这里我只讲解Wi ...
- python 自学笔记(四) 列表
有几天没有更新博客了,毕竟是自学,最近事情确实比较多,有时候想学的时候反而没时间,到有时间的时候反而不想学.以后得想办法改掉这个缺点,只要有时间就要学习自己想学的东西,希望自学的同学能和我共同交流,其 ...
- 如何深入系统的学习一门编程语言——python自学笔记
前言 最早接触python的时候,他并没有现在这么火,我也没把他太当回事,那时候我对python的印象就是给运维人员使用的一门很古老的语言,显然随着tensorflow(以下简称tf)的兴起,pyth ...
- python自学笔记二
:#进入循环重输文0件名 pass else:#退出循环,等待创建 break fobj = open(fname,'a')#打开或创建文件 #接下来写入文件 all = [] print('ente ...
- Python 自学笔记(二)第一个程序 Hello World
一 打印 Hello world 1,输入 Python “Hello world” 即可 2,脚本文件输出Hello World 在命令行(cmd),输入 python 文件路径+文件名 3,为什么 ...
- python自学笔记(一)简单了解python
脚本解释型语言的内部机制 python先将脚本编译成字节码文件(pyc,pyo) python虚拟机解释并运行字节码文件 编译型语言的内部机制 先将源代码编译成机器码(机器能读懂的代码),生成可执行文 ...
- python自学笔记(九)python练习题
1. 已知字符串 a = "aAsmr3idd4bgs7Dlsf9eAF",要求如下 1.1 请将a字符串的大写改为小写,小写改为大写 print a.swapcase() 1.2 ...
随机推荐
- MyBatis之Collection
Collection翻译过来,意为"集合"的意思,既然是集合,肯定是代表多个. MyBatis以其自身,小巧易懂,闻名于JavaEE. 传统的JDBC就不说了,Hibernate记 ...
- Ubuntu16.04安装Zabbix3.2(快速安装教程)
ubuntu16.04下zabbix安装和配置 上面这篇虽然是一样的,但是针对的版本有差异,版本差异,安装方式也就有差异,对要求的环境可能有所不同. 今天帮同事安装zabbix,按照如下几个步骤,就完 ...
- Java之时间转换
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = sdf.parse( ...
- gettimeofday()函数来得到时间
gettimeofday()函数的使用方法: 1.简介: 在C语言中可以使用函数gettimeofday()函数来得到时间.它的精度可以达到微妙 2.函数原型: #include<sys/tim ...
- RC Calculation
scenario 定义中包括 Mode.Corner.RC 其中 Corner (PVT)用于计算 cell delay 而 RC 用于计算 net delay 本文简要介绍如何使用 RC 参数来计算 ...
- 2019年春季学期《C语言程序设计II》助教注意事项
本学期<C语言程序设计II>课程安排 理论课时24(1-12周),实验课时8(13周),课程设计课时16(14-15周) 理论课教学内容 附:教学进度表 本学期实验课和课程设计参考教材 & ...
- 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 ...
- intellij idea新建maven项目,一直loading archetype list.....
不知道什么时候开始,在idea里新建maven项目时,在new module页面,一直显示loading archetype list....,导致一直没办法新建.后来我以为是防火墙问题,各种设置还是 ...
- boot.img的修改
个文件:boot.img.system.img.userdata.img.其中boot.img 存放着内核以及Android系统的配置信息,比如android系统各文件夹的读写权限,adb 的权限.所 ...
- 20155209 林虹宇Exp2 后门原理与实践
Exp2 后门原理与实践 实验内容 一.使用netcat获取主机操作Shell,cron启动 使用netcat获取主机操作Shell Win获得Linux Shell 查看win的ip地址 windo ...