学习笔记<一>
来源:互联网 发布:跨境电子商城源码 编辑:程序博客网 时间:2024/06/06 00:52
学习笔记 <一>
首先要明确,python只用来写, 编辑器用来保存,命令行用来验证。
1. 进入Windows环境cmd命令行时要输入python来进入,随后即可编程。
2. 可以在文本编辑器里面保存一个.py文件,退出文本编辑器,可以在命令行输入文件名,即可找到保存的东西。
3.python的变量不需要像c一样需要声明,直接可以输入。而且数据类型是由python自动决定的。
学习一个内置函数type()
eg :>>>a=10
>>>print a
>>>print type(a)
那么就会有如下输出:
10
<type 'int'>
4.回收变量名
如果你想让a存储不同的数据,不需要删除原有的变量就可以直接进行赋值。
>>>a=1.3
>>>print a ,type(a) //由此可以看到print的另一个用法,后跟多个输出,用逗号分开。
那么就会有如下输出:1.3<type 'float'>
5.常用的数据类型
变量 a=10 a=1.3 a=True a=‘Hello!’
数据类型 int(整数) float(浮点数) 真值(True/False) 字符串(也可以是双引号)
6.序列
sequence(序列)是一组有顺序的元素的集合
之前所说的基本数据类型,都可以作为序列的元素。
序列有两种 :tuple(定值表;也有翻译为元祖) 和 list
eg :>>>s1=(2,1.3,'love',5.6,False) //s1是一个tuple
>>>s2=(Ture,5,‘smile’) //s2是一个list
tuple和list的主要区别是,一旦建立,tuple的各个元素不可在变更,而list可以。
>>>print s1,type(s1)
>>>print s1,type(s2)
一个序列作为另一个序列的元素
>>>s3=[1,[3,4,5]] 空序列>>>s4=[]
7.List
1).元素的引用
序列元素的下标从 0 开始:
>>>prints1[0]>>>prints2[2] >>>prints3[1][2]
如果要取最后一个元素,除了计算索引位置外,还可以用-1 做索引,直接获取最后一个元素,以此类推,可以获取倒数第 2 个、倒数第 3 个。
list是一个可变的有序表,所以,可以往 list 中追加元素到末尾:
>>>s2.append(10)
也可以把元素插入到指定的位置,比如索引号为 1 的位置:
>>>s2.insert(1,15)
要删除 list 末尾的元素,用 pop()方法:
>>>s2.pop()
要删除指定位置的元素,用 pop(i)方法,其中 i 是索引位置:
>>>s2.pop(1)
要把某个元素替换成别的元素,可以直接赋值给对应的索引位置:
>>>s1[1]=20
list 里面的元素的数据类型也可以不同。
2).其他引用方式
切片操作:
范围引用:基本样式 [下限:上限:步长] >>>prints1[:5] # 从开始到下标 4 (下标 5 的元素 不包括在内)>>>prints1[2:] # 从下标 2 到最后 >>>prints1[0:5:2] # 从下标0到下标4(下标5不包括在内), 每隔2取一个元素(下 标为 0,2,4 的元素)>>>prints1[2:0:-1] # 从下标 2 到下标 1
从上面可以看到,在范围引用的时候,如果写明上限,那么这个上限本身不包括在内。
尾部元素引用:
>>>prints1[-1] # 序列最后一个元素>>>prints1[-3] # 序列倒数第三个元素同样,如果 s1[0:-1], 那么最后一个元素不会被引用(再一次,不包括上限元素本身)。
8.tuple
另一种有序列表叫元组:tuple。tuple 和 list 非常类似,但是 tuple 一旦初始化就不能修改,比如列出同学的名字:
>>>classmates=('Michael','Bob','Tracy')现在,classmates 这个 tuple 不能变了,它也没有 append(),insert()这样的方法。其他获取元素的方法和 list 是一样的,你可以正常地使用 classmates[0],classmates[-1],但不能赋值成另外的元素。
不可变的 tuple 有什么意义?因为 tuple 不可变,所以代码更安全。如果可能,能用 tuple 代替 list 就尽量用 tuple。 tuple 的陷阱:当你定义一个 tuple 时,在定义的时候,tuple 的元素就必须被确定下来,比如:
>>>t=(1,2)>>>t(1,2) 如果要定义一个空的tuple,可以写成(): >>>t=()>>>t()
但是,要定义一个只有 1 个元素的 tuple,如果你这么定义: >>>t=(1)>>>t1 定义的不是 tuple,是 1 这个数!这是因为括号()既可以表示 tuple,又可以表示数学公式中 的小括号,这就产生了歧义,因此,Python 规定,这种情况下,按小括号进行计算,计算结果自然是 1。所以,只有 1 个元素的 tuple 定义时必须加一个逗号,,来消除歧义:
>>>t=(1,)>>>t(1,)``Python在显示只有 1 个元素的 tuple 时,也会加一个逗号,,以免你误解成数学计算意义上的括号。
9字符串是元祖
字符串也是一种特殊的元素因此可以执行元祖的相关操作。
>>>str=‘abcde’
>>>print str[2:4]
10.运算
a 数学运算
>>>print 后边紧跟 1+9加法 1.3-4减法 *乘法 /除法 **乘方 10%3求余数(10=3*+1,所以余一)
b判断 判断真假 返回True /False
>>>print 后边紧跟(eg: 5==6) ==相等 !=不等
>>>print5 in[1,3,5] 5是list[1,3,5] 的一个元素。
11.逻辑运算
True/False 之间的运算:>>>printTrueandTrue,TrueandFalse #and,“与”运算, 两者都为真才是真>>>printTrueorFalse #or,"或"运算, 其中之一为真即为真>>>printnotTrue #not,“非”运算,取反
可以和上一部分结合做一些练习,比如:
>>>print5==6or3>=3
12.缩进和选择
1、缩进
Python 最具特色的是用缩进来标明成块的代码。我下面以 if 选择结构来举例。if 后面跟随条件,如果条件成立,则执行归属于 if 的一个代码块。先看 C 语言的表达方式(注意,这是 C,不是 Python!) if(i>0) { x=1; y=2; } 如果 i>0 的话,我们将进行括号中所包括的两个赋值操作。括号中包含的就是块操作,它隶属于 if。在 Python 中,同样的目的,这段话是这样的: ifi>0: x=1 y=2 在 Python 中,去掉了 i>0 周围的括号,去除了每个语句句尾的分号,表示块的花括号也消失了。
多出来了 if...之后的 :(冒号), 还有就是 x =1 和 y=2 前面有四个空格的缩进。通过缩进, Python 识别出这两个语句是隶属于 if。 Python 这样设计的理由纯粹是为了程序好看。
13.if 语句
写一个完整的程序,命名为 ifDemo.py。这个程序用于实现 if 结构。
i=1 x=1ifi>0: x=x+1printx 用 cd 命令进入该文件所在目录,然后输入命令运行它: $pythonifDemo.py # 运行程序运行到 if 的时候,条件为 True,因此执行 x=x+1。 printx 语句没有缩进,那么就是 if 之外。如果将第一句改成 i=-1,那么 if 遇到假值 (False), x=x+1 隶属于 if, 这一句跳过。printx 没有缩进,是 if 之外,不跳过,继续执行。
这种以四个空格的缩进来表示隶属关系的书写方式,以后还会看到。强制缩进增强了程序的可读性。
复杂一些的 if 选择: i=1 ifi>0: print'positivei' i=i+1elifi==0: print'iis0' i=i*10else:print'negativei' i=i-1 print'newi:',i 这里有三个块,分别属于 if,elif,else 引领。 Python 检测条件,如果发现 if 的条件为假,那么跳过后面紧跟的块,检测下一个 elif 的条件; 如果还是假,那么执行else 块。
通过上面的结构将程序分出三个分支。程序根据条件,只执行三个分支中的一个。
整个 if 可以放在另一个 if 语句中,也就是 if 结构的嵌套使用: i =5ifi>1: print'ibiggerthan1' print'good' ifi>2:print'ibiggerthan2' print'evenbetter' ifi>2 后面的块相对于该 if 缩进了四个空格,以表明其隶属于该 if ,而不是外层的 if 。
- XSLT学习笔记(一)
- Castor学习笔记(一)
- CSS学习笔记一
- 汇编学习笔记(一)
- ArcXML学习笔记(一)
- C#学习笔记(一)
- AIX学习笔记(一)
- PHP学习笔记(一)
- 串口学习笔记(一)
- JetSpeed学习笔记(一)
- symbian学习笔记一
- JSP学习笔记一
- Eclipse学习笔记一
- Cryptopp学习笔记(一)
- J2EE 学习笔记 一
- SOA学习笔记一
- Eclipse学习笔记(一)
- WebServer 学习笔记 一
- Android 使用动态加载框架DL进行插件化开发
- Hadoop2.2.0 HA初体验
- 关于 md5 摘要
- linux随心笔记之用户群组的概念
- 初学android
- 学习笔记<一>
- 排序——插入排序(C++)
- C++标准库的异常类层次结构
- 蓝桥杯第三届 转方阵
- 操练Ubuntu14.10
- popToRootViewController
- 【HDU1863】畅通工程 (kruskal/并查集find)
- struts2文件上传 下载
- PAT 乙级 真题 1002. 写出这个数