python入门学习笔记

目录:
第一章:认识python

了解python与其他语言的的区别,并说明了我学习python的原因,仅供参考哈~

第二章:安装python

由于本人资历较浅,所以就推荐了两个我用来学习安装python的教程,仅供参考哈~

第三章:python的变量和数据类型

讲解Python基本的数据类型,包括整数、浮点数、字符串和布尔类型,以及变量的概念和基本的数据运算。

第四章:list和puple类型

本章讲解Python最常用的两种集合类型:list和tuple,我们可以用list和tuple来表示有序集合。

第五章:条件判断和循环

讲解Python的条件判断和循环语句,利用条件判断和循环来构造程序的执行逻辑。

第六章:Dict和Set类型

讲解Python的另外两种重要的数据类型Dict和Set,可以快速按照关键字检索信息。

第一章:认识python

注意:
python入门学习笔记_第1张图片
我学习python的原因:
1.因为它是一门全新的语言,对我的吸引力笔记大
2.小组其他成员也都在学习,因此大家可以共同学习交流
3.他是测试人员常用的基本语言之一,入门快,代码量少,清晰易懂

第二章:python的变量和数据类型

Mac环境下的python安装教程:
http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001374738150500472fd5785c194ebea336061163a8a974000

windows环境下的python安装教程:
http://www.cnblogs.com/windinsky/archive/2012/09/20/2695520.html

第三章:python的变量和数据类型

1⃣️数据类型:
整数:Python可以处理任意大小的整数,当然包括负整数
字符串:字符串是以”或”“括起来的任意文本
空值:None(注意大小写哈,各位测试宝宝们)
十六进制:前面加上0x
浮点数:1.23x10^9就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5
布尔值:布尔值只有True、False两种值
在Python中,可以直接用True、False表示布尔值(请注 意大小写),也可以通过布尔运算计算出来。布尔值可以用and、or和not运算。and运算是与运算,只有所有都为 True,and运算结果才是 True。or运算是或运算,只要其中有一个为 True,or 运算结果就是 True。not运算是非运算,它是一个单目运算符,把 True 变成 False,False 变成 True。
空值:空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

2⃣️输出
用print表示,和java一样咯
eg.print(‘hello World!’,100,None,100+200,0xff00)
输出结果:hello World! 100 None 300 65280
(print会依次打印每个字符串,遇到逗号“,”会输出一个空格)

3⃣️注释
在需要注释的内容前方加上标识符‘#‘(不过只支持注释一行哈)

4⃣️变量
在Python程序中,变量是用一个变量名表示,变量名必须是大小写英文、数字和下划线(_)的组合,且不能用数字开头
等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量
eg.我们写:a = ‘ABC’时,Python解释器干了两件事情:
1. 在内存中创建了一个’ABC’的字符串;
2. 在内存中创建了一个名为a的变量,并把它指向’ABC’。

5⃣️字符串
问题:要表示字符串 Bob said “I’m OK”.
解决方案:这个字符串又可以表示为’Bob said \”I\’m OK\”.’
注意:转义字符 \ 不计入字符串的内容中。
常用的转义字符还有:\n 表示换行,\t 表示一个制表符,\ 表示 \ 字符本身

6⃣️raw字符串与多行字符串
在字符串前面加个前缀 r,表示这是一个 raw 字符串,里面的字符就不需要转义了.例如:r’(~_~)/ (~_~)/’
但是,r’…’表示法不能表示多行字符串,也不能表示包含’和 “的字符串 。如果要表示多行字符串,可以用”’…”’表示:
”’Line 1
Line 2
Line 3”’
等同于:’Line 1\nLine 2\nLine 3’
还可以在多行字符串前面添加 r ,把这个多行字符串也变成一个 raw字符串:
r”’Python is created by “Guido”.
It is free and easy to learn.
Let’s start learn Python in imooc!”’

7⃣️Unicode字符串
Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u’…’表示,比如:
print u’中文’
中文
注意: 不加 u ,中文就不能正常显示。
Unicode字符串除了多了一个 u 之外,与普通字符串没啥区别,转义字符和多行表示法仍然有效。
如果中文字符串在Python环境下遇到 UnicodeDecodeError,这是因为.py文件保存的格式有问题。可以在第一行添加注释
# -- coding: utf-8 --
目的是告诉Python解释器,用UTF-8编码读取源代码。然后用Notepad++ 另存为… 并选择UTF-8格式保存。

8⃣️整数和浮点数
Python的整数运算结果仍然是整数,浮点数运算结果仍然是浮点数:
1 + 2 # ==> 整数 3
1.0 + 2.0 # ==> 浮点数 3.0
但是整数和浮点数混合运算的结果就变成浮点数了:
1 + 2.0 # ==> 浮点数 3.0
求商除法:11 / 4 # ==> 2
求余:11 % 4 # ==> 3
求浮点数商:11.0 / 4 # ==> 2.75

9⃣️布尔类型
与运算:只有两个布尔值都为 True 时,计算结果才为 True。
True and True # ==> True
True and False # ==> False
False and True # ==> False
False and False # ==> False
或运算:只要有一个布尔值为 True,计算结果就是 True。
True or True # ==> True
True or False # ==> True
False or True # ==> True
False or False # ==> False
非运算:把True变为False,或者把False变为True:
not True # ==> False
not False # ==> True
Python把0、空字符串”和None看成 False,其他数值和非空字符串都看成 True,所以:
True and ‘a=T’ 计算结果是 ‘a=T’
继续计算 ‘a=T’ or ‘a=F’ 计算结果还是 ‘a=T’
要解释上述结果,又涉及到 and 和 or 运算的一条重要法则:短路计算。
1. 在计算 a and b 时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。
2. 在计算 a or b 时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。
所以Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。

第四章、List和Tuple类型

1⃣️创建list
Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。
eg.列出班里所有同学的名字,就可以用一个list表示:
[‘Michael’, ‘Bob’, ‘Tracy’]
如果要给list赋一个变量值,直接A=[],然后print A就可以啦。
一个元素也没有的list,就是空list:empt_list=[]

2⃣️按照索引访问list
由于list是一个有序集合,所以,我们可以用一个list按分数从高到低表示出班里的3个同学:
要打印第一名同学的名字,用L[0]
要打印第二名同学的名字,用L[1]
要打印最后一个同学的名字,用L[-1]
即,正式表示顺序,负数表示逆序。

3⃣️添加新元素
现在,班里有3名同学:L = [‘Adam’, ‘Lisa’, ‘Bart’],今天,班里转来一名新同学 Paul,如何把新同学添加到现有的 list 中呢?
方法一:L.append(‘Paul’) print L(append总是插入队尾)
方法二:L.insert(0/1/2,’Paul’) print L (0/1/2表示插入的位置)

4⃣️从list中删除数据
Paul同学刚来几天又要转走了,那么我们怎么把Paul 从现有的list中删除呢?
情况一:若Paul同学排在最后一个:
》L = [‘Adam’, ‘Lisa’, ‘Bart’, ‘Paul’]
》L.pop()
‘Paul’
》 print L
[‘Adam’, ‘Lisa’, ‘Bart’]
情况二:若Paul不在最后一个:
L.pop(n) *n表示Paul的位置
⚠️多次执行pop()方法,会在上一个pop()方法的结果上再次执行,不是同步执行的

5⃣️替换元素
假设现在班里仍然是3名同学: L = [‘Adam’, ‘Lisa’, ‘Bart’],现在,Bart同学要转学走了,碰巧来了一个Paul同学,要更新班级成员名单。
方法一:先把Bart删掉,再把Paul添加进来(步骤略)。
方法二:直接用Paul把Bart给替换掉:
L[2] = ‘Paul’
print L
L = [‘Adam’, ‘Lisa’, ‘Paul’]
⚠️任务
班里的同学按照分数排名是这样的:L = [‘Adam’, ‘Lisa’, ‘Bart’]
但是,在一次考试后,Bart同学意外取得第一,而Adam同学考了倒数第一。请通过对list的索引赋值,生成新的排名。
python入门学习笔记_第2张图片

6⃣️创建tuple
定义:tuple是另一种有序的列表,中文翻译为“ 元组 ”。tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了。
对比:
(1)创建tuple和创建list唯一不同之处是用( )替代了[ ],但是输出的时候仍然用[]表示。eg.同样是表示班里同学的名称,用tuple表示:t = (‘Adam’, ‘Lisa’, ‘Bart’)
(2)tuple没有 append()方法,也没有insert()和pop()方法。所以,新同学没法直接往 tuple 中添加,老同学想退出 tuple 也不行。
(3)获取 tuple 元素的方式和 list 是一模一样的,我们可以正常使用 t[0],t[-1]等索引方式访问元素,但是不能赋值成别的元素。

7⃣️创建单元素tuple
tuple和list一样,可以包含 0 个、1个和任意多个元素。
包含多个元素的 tuple,前面我们已经创建过了。
包含 0 个元素的 tuple,也就是空tuple,直接用 ()表示:t=()。
包含1个元素的tuple,若以t=(1),输出结果为整数1,非元祖(1)
原因:()既可以表示tuple,又可以作为括号表示运算时的优先级,结果 (1) 被Python解释器计算出结果 1,导致我们得到的不是tuple,而是整数 1。
解决方法:因为用()定义单元素的tuple有歧义,所以 Python 规定,单元素 tuple 要多加一个逗号“,”,这样就避免了歧义。
》 t = (1,)
》 print t
(1,)
因此,Python在打印单元素tuple时,也自动添加了一个“,”,为了更明确地告诉你这是一个tuple。
8⃣️Python之“可变”的tuple
前面我们看到了tuple一旦创建就不能修改。现在,我们来看一个“可变”的tuple:
》t = (‘a’, ‘b’, [‘A’, ‘B’])
注意到 t 有 3 个元素:’a’,’b’和一个list:[‘A’, ‘B’]。list作为一个整体是tuple的第3个元素。list对象可以通过 t[2] 拿到:
》L = t[2]
然后,我们把list的两个元素改一改:
》 L[0] = ‘X’
》 L[1] = ‘Y’
再看看tuple的内容:
》 print t
(‘a’, ‘b’, [‘X’, ‘Y’])
不是说tuple一旦定义后就不可变了吗?怎么现在又变了?
别急,我们先看看定义的时候tuple包含的3个元素:
python入门学习笔记_第3张图片
当我们把list的元素’A’和’B’修改为’X’和’Y’后,tuple变为:
python入门学习笔记_第4张图片
表面上看,tuple的元素确实变了,但其实变的不是 tuple 的元素,而是list的元素。
tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向’a’,就不能改成指向’b’,指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!
理解了“指向不变”后,要创建一个内容也不变的tuple怎么做?那就必须保证tuple的每一个元素本身也不能变。
eg:
t = (‘a’, ‘b’, [‘A’, ‘B’])>修改为t = (‘a’, ‘b’, (‘A’, ‘B’)),所有元素不可变啦。

第五章:条件判断和循环

1⃣️Python之if语句
计算机之所以能做很多自动化的任务,因为它可以自己做条件判断。

比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,可以用if语句实现:

>
age = 20
if age >= 18:
print ‘your age is’, age
print ‘adult’
print ‘END’
注意: Python代码的缩进规则。具有相同缩进的代码被视为代码块,上面的3,4行 print 语句就构成一个代码块(但不包括第5行的print)。如果 if 语句判断为 True,就会执行这个代码块。

缩进请严格按照Python的习惯写法:4个空格,不要使用Tab,更不要混合Tab和空格,否则很容易造成因为缩进引起的语法错误。

注意: if 语句后接表达式,然后用:表示代码块开始。

如果你在Python交互环境下敲代码,还要特别留意缩进,并且退出缩进需要多敲一行回车:

age = 20
if age >= 18:
… print ‘your age is’, age
… print ‘adult’

your age is 20
adult

2⃣️Python之 if-else
与java一样。两种条件判断是“非此即彼”的,要么符合条件1,要么符合条件2,因此,完全可以用一个 if … else … 语句把它们统一起来:

>
if age >= 18:
print ‘adult’
else:
print ‘teenager’
利用 if … else … 语句,我们可以根据条件表达式的值为 True 或者 False ,分别执行 if 代码块或者 else 代码块。

注意: else 后面有个“:”。

3⃣️Python之 if-elif-else
有的时候,一个 if … else … 还不够用,于是就像java一样出来了多个else。避免嵌套结构的 if … else …,我们可以用 if … 多个elif … else … 的结构,一次写完所有的规则:

>
if age >= 18:
print ‘adult’
elif age >= 6:
print ‘teenager’
elif age >= 3:
print ‘kid’
else:
print ‘baby’

⚠️elif 意思就是 else if。
这样一来,我们就写出了结构非常清晰的一系列条件判断。

4⃣️Python之 for循环
原因:
list或tuple可以表示一个有序集合。如果我们想依次访问一个list中的每一个元素呢?
实例:
Python的 for 循环就可以依次把list或tuple的每个元素迭代出来:

>
L = [‘Adam’, ‘Lisa’, ‘Bart’]
for name in L:
print name

注意: name 这个变量是在 for 循环中定义的,意思是,依次取出list中的每一个元素,并把元素赋值给 name,然后执行for循环体(就是缩进的代码块)
练习:
班里考试后,老师要统计平均成绩,已知4位同学的成绩用list表示如下:L = [75, 92, 59, 68],请利用for循环计算出平均成绩。

L=[75,92,59,68]
sum=0
for s in L:
sum+=s
print sum

5⃣️Python之while循环
区别:
和 for 循环不同的另一种循环是 while 循环,while 循环不会迭代 list 或 tuple 的元素,而是根据表达式判断循环是否结束。
示例:
利用while循环计算100以内奇数的和。

s=0
i=1
while i<100:
s+=i+2
print s

6⃣️python之break退出循环
原因:
用 for 循环或者 while 循环时,如果要在循环体内直接退出循环,可以使用 break 语句。
示例:
比如计算1至100的整数和,我们用while来实现:

sum = 0
x = 1
while True:
sum = sum + x
x = x + 1
if x > 100:
break
print sum

练习:
利用 while True 无限循环配合 break 语句,计算 1 + 2 + 4 + 8 + 16 + … 的前20项的和。
解答:

sum=0
i=1
n=1
while True:
sum=sum+i
i=i*2
n=n+1
if n>20:
break
print sum

7⃣️python之continue继续循环
原因:
在循环过程中,可以用break退出当前循环,还可以用continue跳过后续循环代码,继续下一次循环
示例:
老师只想统计及格分数的平均分,就要把 x < 60 的分数剔除掉,这时,利用 continue,可以做到当 x < 60的时候,不继续执行循环体的后续代码,直接进入下一次循环:

L = [75, 98, 59, 81, 66, 43, 69, 85]
sum = 0.0
n = 0
for x in L:
if x < 60:
continue
sum = sum + x
n = n + 1
print sum / n

练习:
计算 0 - 100 的while循环进行改造,通过增加 continue 语句,使得只计算奇数的和:

sum = 0
x = 0
while True:
x = x + 1
if x%2==0:
continue
if x > 100:
break
sum=sum+x
print sum

8⃣️python入门之多重循环
例题:对100以内的两位数,请使用一个两重循环打印出所有十位数数字比个位数数字小的数,例如,23(2 < 3)

解法:
for x in[1,2,3,4,5,6,7,8,9]:
for y in[0,1,2,3,4,5,6,7,8,9]:
if x< y:
print x*10+y

第六章:Dict和Set类型

1⃣️Python之什么是dict
我们把名字称为key,对应的成绩称为value,dict就是通过 key 来查找 value。
花括号 {} 表示这是一个dict,然后按照 key: value, 写出来即可。最后一个 key: value 的逗号可以省略。
由于dict也是集合,len() 函数可以计算任意集合的大小
d = {
‘Adam’: 95,
‘Lisa’: 85,
‘Bart’: 59
}
d[‘Paul’]=75
print d
print len(d)

2⃣️Python之访问dict
dict可以简单地使用 d[key] 的形式来查找对应的 value,这和 list 很像,不同之处是,list 必须使用索引返回对应的元素,而dict使用key

注意:
1. 通过 key 访问 dict 的value,只要 key 存在,dict就返回对应的value。如果key不存在,会直接报错:KeyError。
要避免 KeyError 发生,有两个办法:
一、是先判断一下 key 是否存在,用 in 操作符:

if ‘Paul’ in d:
print d[‘Paul’]

二、是使用dict本身提供的一个 get 方法,在Key不存在的时候,返回None:

print d.get(‘Bart’)
59
print d.get(‘Paul’)
None

3⃣️Python中dict的特点
1.dict的缺点是占用内存大,还会浪费很多内容.
2.dict是按照key查找,故在一个dict中key是不能重复的.
3.dict的第二个特点就是存储的key-value序对是没有顺序的!
4.dict的第三个特点是作为 key 的元素必须不可变.Python的基本类型如字符串、整数、 浮点数都是不可变的,都可以作为 key。但是list是可变的,就不能作为 key。最常用的key还是字符串,因为用起来最方便。

4⃣️Python更新dict
总结:
1.直接用[]插入,d = { } , d[‘lisa’] = 11
2.如果已经存在的话会更新
3.内部的存储是无序的
说明:
dict是可变的,也就是说,我们可以随时往dict中添加新的 key-value
用赋值语句:d[‘Paul’] = 72
如果 key 已经存在,则赋值会用新的 value 替换掉原来的 value;

5⃣️Python之 遍历dict
得到dic的key的值的方法:
一、dic【key】,可以得到对应的key值,既然dic【key】=vaule可以付值,则dic【key】也可以查值;
二、dic.get(key)也可以获得vaule
区别:得到值的形式不一样,如果key是个list的dic,get输出的是list,dic【】输出的是list的dic,get可以只输出格式

直接使用for循环可以遍历 dict 的 key:

d = { ‘Adam’: 95, ‘Lisa’: 85, ‘Bart’: 59 }
for key in d:
… print key

Lisa
Adam
Bart
由于通过 key 可以获取对应的 value,因此,在循环体内,可以获取到value的值。
d = {
‘Adam’: 95,
‘Lisa’: 85,
‘Bart’: 59
}
for key in d:
print key,’:’,d.get(key)

6⃣️Python中什么是set
1.set 持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这 点和 dict 的 key很像;
2.创建 set 的方式是调用 set() 并传入一个 list,list的元素将作为set的元素
3.因为set不能包含重复的元素,所以,当我们传入包含重复元素的 list时,set会自动去掉重复的元素,原来的list有4个元素,但set只有3个元素。
另一种理解方法:字典中的key值是不能重复的,这点很好理解。为了保证key不重复,需要会用set,所以set也是无序集合,其中的元素不重复且无序。

7⃣️Python之 访问set
由于set存储的是无序集合,所以我们没法通过索引来访问。
访问 set中的某个元素实际上就是判断一个元素是否在set中
我们可以用 in 操作符判断:
Bart是该班的同学吗?

‘Bart’ in s
True
看来大小写很重要,’Bart’ 和 ‘bart’被认为是两个不同的元素。

扩展:
Python lower()方法:
1.描述
Python lower() 方法转换字符串中所有大写字符为小写。
2.语法
lower()方法语法:
str.lower()
3.参数
无。
4.返回值
返回将字符串中所有大写字符转换为小写后生成的字符串。
5.实例
以下实例展示了lower()的使用方法:#!/usr/bin/python
str = “THIS IS STRING EXAMPLE….WOW!!!”;
print str.lower();
以上实例输出结果如下:
this is string example….wow!!!

8⃣️Python之 set的特点
1.set内部结构和dict很像,唯一区别是不存储value,判断元素是否在set中速度很快;
2.set存储的元素和dict的key类似,必须是不变对象,因此任何可变对象是不能放在set中;
3.set存储的元素也是没有顺序的
weekdays=set([‘MON’,’TUE’,’WED’,’THU’,’FRI’,’SAT’,’SUN’])
x=???
if x in weekdays:
print ‘input ok’
else:
print ‘input error’

9⃣️Python之 遍历set
set打印结果总结:
原则:会打印出列表中元素
但是列表中的元素可以是复杂的,可以是元组,列表,字典等。

用 for 循环遍历 set 的元素:
s = set([‘Adam’, ‘Lisa’, ‘Bart’])
for name in s:
… print name

Lisa
Adam
Bart
观察 for 循环在遍历set时,元素的顺序和list的顺序很可能是不同的,而且不同的机器上运行的结果也可能不同

1⃣️0⃣️Python之 更新set
由于set存储的是一组不重复的无序元素,因此,更新set主要做两件事:
一是把新的元素添加到set中,二是把已有元素从set中删除。

添加元素时,用set的add()方法:
s = set([1, 2, 3])
s.add(4)
print s
set([1, 2, 3, 4])
如果添加的元素已经存在于set中,add()不会报错,但是不会加进去了:
s = set([1, 2, 3])
s.add(3)
print s
set([1, 2, 3])
删除set中的元素时,用set的remove()方法:
s = set([1, 2, 3, 4])
s.remove(4)
print s
set([1, 2, 3])
如果删除的元素不存在set中,remove()会报错:
s = set([1, 2, 3])
s.remove(4)
Traceback (most recent call last):
File “”, line 1, in
KeyError: 4
所以用add()可以直接添加,而remove()前需要判断。

你可能感兴趣的:(python)