学习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])  #===>h
print(str1[1]); print(str1[-10])  #===>e
print(str1[2]); print(str1[-9])   #===>l
#可以将字符串进行分割
print(str1[0:5]);print(str1[6:11]); #===> hello   world
print(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.5
print("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 = 1
b = 3
if a < b :
  a = 3
  b = 2
else:
  a = 2
  b = 3
print(a,b);
if a < b:
  a = 3
  b = 2
elif a > b:
  a = 2
  b = 3
else:
  a = 100
  b = 200
print(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集成于CocalCola
print(xuebi.formula)
xuebi.drink()      #这样子类就可以调用父类的方法,继续延用了

四、总结:

Python是一种面向对象的解释型计算机程序的设计语言, Python具有丰富和强大的库。它常被称为胶水语言,能够把其他语言制作的各种模块很轻松地结合在一起。

相对于Java、C语言等,Python简单易学,更适合没有编程基础的小白入门。Python 的语言没有多少仪式化的东西,所以就算不是一个 Python 专家,你也能读懂它的代码。

Python的发展方向:数据分析、人工智能、web开发、测试、运维、web安全、游戏制作等等

posted on 2020-04-02 22:43  小白菜-逗逗  阅读(193)  评论(0编辑  收藏  举报