学习python语言前的指引与总结
一、python语言的学习流程:
1、基础知识:
学习每一种新的编程语言都是从最基本的开始,对于python而言也是需要先学习其基础知识。
python的基础知识包括:变量和数据类型,List和Tuple,条件判断和循环,Dict和Set, 函数,切片,迭代和列表生成式。
注意:学习基础知识切莫着急,一定要打好基础,这样才会更好的应用python
2、进阶知识:
学完掌握基础知识之后,就要学习进阶知识了。
python的进阶知识包括:函数式编程,模块,面向对象编程基础,类的继承和定制类
3、python装饰器:
装饰器是很重要的一个知识点。
关于装饰器需要涉及到函数作用域.闭包的使用和装饰器的概念及使用
4、高阶知识:
文件处理,错误和异常和正则表达式
5、提升阶段:
数据库操作,Django框架和爬虫技术
二、Python初学的17个学习小技巧
1、交换变量
有时候,当我们要交换两个变量的值时,一种常规的方法是创建一个临时变量,然后用它来进行交换。例:
# 输入
a = 5
b = 10
#创建临时变量
temp = a
a = b
b = temp
print(a)
print(b)
但在Python中,其实我们有一种更简洁的写法:

2、if 语句在行内
print "Hello" if True else "World"
>>> Hello
3、连接
下面的最后一种方式在绑定两个不同类型的对象时显得很酷。
nfc = ["Packers", "49ers"]
afc = ["Ravens", "Patriots"]
print nfc + afc
>>> [''Packers'', ''49ers'', ''Ravens'', ''Patriots'']
print str(1) + " world"
>>> 1 world
print `1` + " world"
>>> 1 world
print 1, "world"
>>> 1 world
print nfc, 1
>>> [''Packers'', ''49ers''] 1
4、计算技巧
#向下取整
print 5.0//2
>>> 2
# 2的5次方
print 2**5
>> 32
注意浮点数的除法
print .3/.1
>>> 2.9999999999999996
print .3//.1
>>> 2.0
5、数值比较
x = 2
if 3 > x > 1:
print x
>>> 2
if 1 < x > 0:
print x
>>> 2
6、两个列表同时迭代
nfc = ["Packers", "49ers"]
afc = ["Ravens", "Patriots"]
for teama, teamb in zip(nfc, afc):
print teama + " vs. " + teamb
>>> Packers vs. Ravens
>>> 49ers vs. Patriots
7、带索引的列表迭代
teams = ["Packers", "49ers", "Ravens", "Patriots"]
for index, team in enumerate(teams):
print index, team
>>> 0 Packers
>>> 1 49ers
>>> 2 Ravens
>>> 3 Patriots
8、列表推导
已知一个列表,刷选出偶数列表方法:
numbers = [1,2,3,4,5,6]
even = []
for number in numbers:
if number%2 == 0:
even.append(number)
9、用下面的代替
numbers = [1,2,3,4,5,6]
even = [number for number in numbers if number%2 == 0]
10、字典推导
teams = ["Packers", "49ers", "Ravens", "Patriots"]
print {key: value for value, key in enumerate(teams)}
>>> {''49ers'': 1, ''Ravens'': 2, ''Patriots'': 3, ''Packers'': 0}
11、初始化列表的值
items = [0]*3
print items
>>> [0,0,0]
12、将列表转换成字符串
teams = ["Packers", "49ers", "Ravens", "Patriots"]
print ", ".join(teams)
>>> ''Packers, 49ers, Ravens, Patriots''
13、从字典中获取元素
不要用下列的方式
data = {''user'': 1, ''name'': ''Max'', ''three'': 4}
try:
is_admin = data[''admin'']
except KeyError:
is_admin = False
替换为
data = {''user'': 1, ''name'': ''Max'', ''three'': 4}
is_admin = data.get(''admin'', False)
14、获取子列表
x = [1,2,3,4,5,6]
#前3个
print x[:3]
>>> [1,2,3]
#中间4个
print x[1:5]
>>> [2,3,4,5]
#最后3个
print x[-3:]
>>> [4,5,6]
#奇数项
print x[::2]
>>> [1,3,5]
#偶数项
print x[1::2]
>>> [2,4,6]
15、60个字符解决FizzBuzz
前段时间Jeff Atwood 推广了一个简单的编程练习叫FizzBuzz,问题引用如下:
写一个程序,打印数字1到100,3的倍数打印“Fizz”来替换这个数,5的倍数打印“Buzz”,对于既是3的倍数又是5的倍数的数字打印“FizzBuzz”。
这里有一个简短的方法解决这个问题:
for x in range(101):print"fizz"[x%34::]+"buzz"[x%54::]or x
16、集合
用到Counter库
from collections import Counter
print Counter("hello")
>>> Counter({''l'': 2, ''h'': 1, ''e'': 1, ''o'': 1})
17、迭代工具
和collections库一样,还有一个库叫itertools
from itertools import combinations
teams = ["Packers", "49ers", "Ravens", "Patriots"]
for game in combinations(teams, 2):
print game
>>> (''Packers'', ''49ers'')
>>> (''Packers'', ''Ravens'')
>>> (''Packers'', ''Patriots'')
>>> (''49ers'', ''Ravens'')
>>> (''49ers'', ''Patriots'')
>>> (''Ravens'', ''Patriots'')
在python中,True和False是全局变量,因此:
False = True
if False:
print "Hello"
else:
print "World"
>>> Hello
三、实用的基础学习:
如果要在python中写中文,则要在xx.py的最前面声明
|
1
|
#coding:utf-8 |
1、基础语法:变量,字符串,函数,逻辑判断,循环
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
varline = 2 ;print(varline);#打印字符串print("hello Python");print("你好,Python");#整型和字符串的转化num1 = 100 ;num2 = "100";num3 = num1 + int(num2);print(num3);#字符串操作str1 = "hello world" ;str2 = str1 * 3 ;string_count = len(str1);print(string_count);print(str2);#字符串索引等价print(str1[0]); print(str1[-11]) #===>hprint(str1[1]); print(str1[-10]) #===>eprint(str1[2]); print(str1[-9]) #===>l#可以将字符串进行分割print(str1[0:5]);print(str1[6:11]); #===> hello worldprint(str1[-4:]);#函数的定义和使用def Print(): print("hello world"); return "sss" ;sss = Print();print(sss);def add(arg1 , arg2): return arg1 + arg2 ;print(add(1,2));def getTempatuare(temp): return temp *9/5 + 32 ;print(str(getTempatuare(35)) + "'F");#克转千克算法def print_kg(g): return float(g / 1000) ;print(str(print_kg(1)) + "kg");#求直角三角形斜边的长度def Line_print(arg1,arg2): return ((arg1*arg1 + arg2 * arg2))**0.5print("The right triangle third side's length is " + str(Line_print(3,4)));#str_rp = str1.replace(str1[:3],'*'*9);#print(str_rp)str11 = "{} a word she can get what she {} for."str12 = "{preposition} a word she can get what she {verb} for"str13 = "{0} a word she can get what she {1} for."str111 = str11.format('With','came');str121 = str12.format(preposition = 'With',verb = 'came')str131 = str13.format('With','came')print(str111)print(str121)print(str131)#单独创建file1 = open('F:\\'+'hello.txt','w')file1.write("Hello world");file1.close()#使用函数创建def text_create(name, msg): desktop_path = 'F:\\' full_path = desktop_path + name + '.txt' file = open(full_path,'w') file.write(msg) file.close() print('Done')text_create('Yang','hello world') # ????#变量的比较teststr1 = "Hello"teststr2 = "World"teststr3 = "Hello"print(teststr1 in teststr2)print(teststr1 is teststr3)print(bool(teststr1))print(bool(''))print(not teststr1)print(teststr1 < teststr3 and teststr2 > teststr1)print(teststr1 > teststr2 or teststr3 < teststr1)#python逻辑判断学习a = 1b = 3if a < b : a = 3 b = 2else: a = 2 b = 3print(a,b);if a < b: a = 3 b = 2elif a > b: a = 2 b = 3else: a = 100 b = 200print(a,b)for i in 1,2,3,4,5,6: print(i)for string_str in "hello","world","world": print(string_str)for str1111 in "Hello": print(str1111) |
2、Python数据结构:列表,元组,字典,集合
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
#python列表===>#特点:可以装python的所有类型,包括元组,列表,字典等city = ['广东','云南','广西','江西','HongKong','Shenzhen',123456]for i in 0,1,2,3,4,5,6: print(city[i])city.insert(1,'北京') #列表的插入for i in 0,1,2,3,4,5,6: print(city[i])city.remove('HongKong') #列表的删除for i in 0,1,2,3,4,5,6: print(city[i])del city[0] #使用del方法删除列表中的元素for i in 0,1,2,3,4,5: print(city[i])#python元组 ===>#特点:不可修改,可被查看以及索引num = ('1','2','3','4','5')for i in 0,1,2,3,4: print(num[i])#python字典 ===>#特点:键值成对存在,键不可重复,值可重复,键不可改,值可以变,可以为任何对象Dog = {'name':'sundy','age':18}Dog.update({'tel':119}) #往字典中添加键值对print(Dog)del Dog['name'] #往字典中删除键值对print(Dog)#集合num_set = {1,2,3,4,1,5}num_set.add(6) #往集合里添加元素print(num_set)num_set.discard(3) #从集合里删除元素print(num_set) |
3、Python语言面对对象:类的定义、使用以及类的继承
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
#coding:utf-8#定义一个类class Anmial: var = 100 Dog = ['runing','eat','sleep'] #Dog是这个类的属性 def function(self): #类里的方法 if Anmial.var == 10: print(Anmial.var) else: print(self+str(Anmial.Dog)) return Anmial.var#实例化类Dog1 = Anmial()print(Anmial.Dog)#遍历类中的成员for i in Anmial.Dog: print(i)#创建实例属性===>类似创建一个与Dog一样的属性Anmial.log = '会飞','Hello','Monkey'print(Anmial.log)Anmial.function("属性:")class CocaCola(): formula = ['caffeine','suger','water','soda'] def __init__(self,local_name): #===>self相当于可以用来访问类中的成员或者创建属性 self.logo_local = '橙汁' if local_name == '可乐': print(local_name) elif local_name == '橙汁': print(local_name) else: print('西瓜汁') def drink(self): #===>调用该方法的时候等效于 coke = CocaCola.drink(coke) print('Energy!')coke = CocaCola('可乐')coke1 = CocaCola('橙汁')coke2 = CocaCola('梨汁')#类的继承===>xuebi相当于CocaCoal的子类,CocaCoal相当于父类class xuebi(CocaCola): formula = ['白色','黄色','绿色']xuebi = xuebi(CocaCola) #将CocaCola放在括号中,表面xuebi集成于CocalColaprint(xuebi.formula)xuebi.drink() #这样子类就可以调用父类的方法,继续延用了 |
四、总结:
Python是一种面向对象的解释型计算机程序的设计语言, Python具有丰富和强大的库。它常被称为胶水语言,能够把其他语言制作的各种模块很轻松地结合在一起。
相对于Java、C语言等,Python简单易学,更适合没有编程基础的小白入门。Python 的语言没有多少仪式化的东西,所以就算不是一个 Python 专家,你也能读懂它的代码。
Python的发展方向:数据分析、人工智能、web开发、测试、运维、web安全、游戏制作等等
浙公网安备 33010602011771号