1.pyhon入门

注1:作者:丁泓斌  出处:https://www.cnblogs.com/dhb5188

  参考:Python官网:http://www.python.org/

       http://www.cnblogs.com/liu-yao/p/5145828.html

 

一 python介绍

 

1.简介 

 Python是一种简单易学,功能强大的编程语言,它有高效率的高层数据结构,简单而有效地实现面向对象编程。Python简洁的语法和对动态输入的支持,再加上解释性语言的本质,使得它在大多数平台上的许多领域都是一个理想的脚本语言,特别适用于快速的应用程序开发。 Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 

Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构

 

 

2.发展

  Python 是由 Guido van Rossum 在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的。

Python 本身也是由诸多其他语言发展而来的,这包括 ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix shell 和其他的脚本语言等等。

像 Perl 语言一样,Python 源代码同样遵循 GPL(GNU General Public License)协议。

 

现在 Python 是由一个核心开发团队在维护,Guido van Rossum 仍然占据着至关重要的作用,指导其进展

3.特点

 

  • 1.易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。

  • 2.易于阅读:Python代码定义的更清晰。

  • 3.易于维护:Python的成功在于它的源代码是相当容易维护的。

  • 4.一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。

  • 5.互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。

  • 6.可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。

  • 7.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。

  • 8.数据库:Python提供所有主要的商业数据库的接口。

  • 9.GUI编程:Python支持GUI可以创建和移植到许多系统调用。

  • 10.可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。(引用于菜鸟教程)

二 Python 2.x 和 3.x

1.print

2.7以下版本 print "hello"
2.7版本print "hello" or print("helllo")
3.x版本print(hello")
注:2.7是一个过渡版本

 2.   3x版本源码不需要再生明编码,默认使用utf-8

# -*- coding:utf-8 -*- 可省

 3. 模块明明更改

2.x 3.x
_winreg winreg
ConfigParser configparser
copy_reg copyreg
Queue queue
SocketServer  socketserver
markupbase _markupbase
repr reprlib
test.test_support test_support

 

 

 

 

 

 

 

 

 

 

  • 整型除法返回浮点数,若要得到整型结果,请使用//
    >>> 5/2
    2.5
    >>> 5//2
    2
    
  • 加入nonlocal语句,使用nonlocal x可以直接指派外围(非全局变量)
  • 除print语句,加入print()函数实现相同的功能。同样的还有 exec语句,已经改为exec()函数
  • 改变了顺序操作符的行为,例如x<y,当x和y类型不匹配时抛出TypeError而不是返回随即的 bool值
  • 输入函数改变了,删除了raw_input,用input代替
  • 去除元组参数解包。不能def(a, (b, c)):pass这样定义函数了
  • 新式的8进制字变量,相应地修改了oct()函数
  • class Foo:这种写法不能用了,改成class Foo(object)

 

三 pyhon解释器

1.cpython python官方版本,使用c实现,最为广泛,将源.py文件转换成字节码pyc文件,然后运行

程序----(c解释器)----(字节码)----(机器码)-----cpu

 2. Jython java实现,将python代码动态编译成java字节码,然后在jvm上运行

程序----(java解释器)----(字节码)----(机器码)-----cpu

3. Ironpython 是C#实现,将代码编译成C#上的字节码,然后在clr上运行

程序----(c#解释器)----(字节码)----(机器码)-----cpu

 4pypy python实现,将Python的字节码再编译成机器码

程序----(c#解释器)----(字节码)----(机器码)-----cpu

 

四 .pyc文件

执行Python代码时,如果导入了其他的 .py 文件,那么,执行过程中会自动生成一个与其同名的 .pyc 文件,该文件就是Python解释器编译之后产生的字节码。
ps:代码经过编译可以产生字节码;字节码通过反编译也可以得到代码; 当生成了.pyc文件后,删除源文件 一样可以运行

 

五 python初探

1 print

1 >>> print ('hello world')
2 hello world
注:python中的单引号 和双引号是一样的效果,都代表字符串

2.输出

1 >>> name = input('your name')
2 your nameding
3 >>> name
4 'ding'

   注:2.x中的shi  raw_input,3.x更改成input

3.注释

1.单行注释
   #被注释内容

2.多行注释
    '''1
    2
    3
    '''

 

4.行和缩进

  python函数之间的逻辑关系,不用({})来控制,用缩进来控制;同一逻辑的语句缩进必须相同

5.变量

     一般两种写法: 
     nums_of_alex_gf=19
     NumsOfAlexGf = 19
     注:=号两边可以有恐慌个也可以没有空格,数字不能开头,特殊字符不能有,
1 >>> import keyword
2 >>> keyword.kwlist
3 ['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
以下关键字不能声明为变量(keyword模块,可以输出当前版本的所有关键字)

6.列表

Python内置一种数据类型是列表:list  是一种有序的集合

1 >>> girl=['xiaocang','xiaoze','xiaobo','xiaoteng']
2 >>> girl
3 ['xiaocang', 'xiaoze', 'xiaobo', 'xiaoteng']
1创建列表
1 >>> dir(girl)
2 ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
2 dir()函数查看此列表的使用方法
1 >>> girl
2 ['xiaocang', 'xiaoze', 'xiaobo', 'xiaoteng']
3 >>> girl.index('xiaocang')
4 0
5 >>> girl.index('xiaobo')
6 2
3.基本操作-索引index
 1 >>> girl           #切片并返回列表
 2 ['xiaocang', 'xiaoze', 'xiaobo', 'xiaoteng']
 3 >>> girl[1:2]
 4 ['xiaoze']
 5 >>> girl[0:2]
 6 ['xiaocang', 'xiaoze']
 7 >>> girl[0:3]
 8 ['xiaocang', 'xiaoze', 'xiaobo']
 9 >>> girl[:3]
10 ['xiaocang', 'xiaoze', 'xiaobo']
11 >>> girl[:-3]
12 ['xiaocang']
13 >>> girl[-3]   #指定索引输出的字符串
14 'xiaoze'
15 >>> girl[:-2]
16 ['xiaocang', 'xiaoze']
17 >>> girl[1:3]  #前半部分完成输出,后半部分-1输出
18 ['xiaoze', 'xiaobo']
19 >>>
4.基本操作-切片
1 >>> girl
2 ['xiaocang', 'xiaoze', 'xiaobo', 'xiaoteng']
3 >>> girl.append('xiaoyuan')
4 >>> girl
5 ['xiaocang', 'xiaoze', 'xiaobo', 'xiaoteng', 'xiaoyuan']
6 >>>
5.基本操作-追加append
 1 >>> girl
 2 ['xiaocang', 'xiaoze', 'xiaobo', 'xiaoteng', 'xiaoyuan']
 3 >>> girl.pop()  #删除最后
 4 'xiaoyuan'
 5 >>> girl
 6 ['xiaocang', 'xiaoze', 'xiaobo', 'xiaoteng']
 7 >>> girl.remove('xiaoze')  #指定删除
 8 >>> girl
 9 ['xiaocang', 'xiaobo', 'xiaoteng']
10 >>>
6.基本操作-删除pop remove
1 >>> girl
2 ['xiaocang', 'xiaobo', 'xiaoteng']
3 >>> girl.insert(2,'xiaoze')
4 >>> girl
5 ['xiaocang', 'xiaobo', 'xiaoze', 'xiaoteng']
6 >>>
7.基本操作-插入insert
1 >>> girl
2 ['xiaocang', 'xiaobo', 'xiaoze', 'xiaoteng']
3 >>> girl.count('xiaoze')
4 1
5 >>>
8.基本操作-统计count
1 >>> girl
2 ['xiaocang', 'xiaobo', 'xiaoze', 'xiaoteng']
3 >>> girl.reverse()
4 >>> girl
5 ['xiaoteng', 'xiaoze', 'xiaobo', 'xiaocang']
6 >>>
9.基本操作-反转reverse

 

7.元组

Python的元组和列表类似,不同在于元组元素不能修改;元组使用小括号,列表使用方括号。元组只需要在括号中添加元素,并使用逗号隔开

1 >>> code=('a','b','c','d')
2 >>> code
3 ('a', 'b', 'c', 'd')
4 >>>
1.创建元组
1 >>> dir(code)
2 ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']
2.查看元组支持方法

 

1 >>> type(code)
2 <class 'tuple'>
3 >>> type(girl)
4 <class 'list'>
5 >>> tuple(girl)
6 ('xiaoteng', 'xiaoze', 'xiaobo', 'xiaocang')
7 >>> list(code)
8 ['a', 'b', 'c', 'd']
9 >>>
元组tuple和列表list相互转换

8.字典

字典是另一种可变的容器模式,且可存储任意类型的对象。字典由键和对应值组成,字典也被称作关联数组或哈希表。

1 #创建字典
2 >>> dict={'name':'dhb','age':'27','job':'IT'}
3 >>> dict
4 {'age': '27', 'name': 'dhb', 'job': 'IT'}
5 >>>
6 #每个建与值用冒号(:)隔开,每对用逗号(,),整体放在大括号({})
7 #键必须独一无二,但值不必
8 #值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元祖

9.运算符

(1).算术运算符

以下假设变量a为10,变量b为20:

(2).比较运算符

以下假设变量a为10,变量b为20:

(3).赋值运算符

以下假设变量a为10,变量b为20:

 

(4).位运算

按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下:

 

(5).逻辑运算符

Python语言支持逻辑运算符,以下假设变量a为10,变量b为20:

 

(6)成员运算

(7).身份运算符

身份运算符用于比较两个对象的存储单元

(8).运算符优先级

 

 

10.判断

1 if 条件判断:
2     执行
3 else:
4     执行

11.循环

 1 #!/usr/bin/python
 2 # -*- coding: UTF-8 -*-
 3 lukey_num = 22
 4 input_num = -1
 5 while input_num != lukey_num:
 6     input_num = int(input("input guess num"))
 7     if input_num > lukey_num:
 8         print ("笨  大了")
 9     elif input_num < lukey_num:
10         print ("笨 小了")
11 print ("bingo")
12 
13     
14 #!/usr/bin/python
15 count = 0
16 while (count < 9):
17    print (count)
18    count = count + 1
19 print "Good bye!"
20 #continue用于跳过该次循环,break用于退出循环
while
 1 #!/usr/bin/python
 2 # -*- coding: UTF-8 -*-
 3 for letter in 'Python':     # 第一个实例
 4    print '当前字母 :', letter
 5 fruits = ['banana', 'apple',  'mango']
 6 for fruit in fruits:        # 第二个实例
 7    print '当前字母 :', fruit
 8 print "Good bye!"
 9 
10     
11 luckynum = 20
12 for i in range(3):
13     input_num= int(input('please your lucky number:'))
14     if input_num == luckynum:
15         print('bingo')
16         break
17     elif input_num < luckynum:
18         print('please input big')
19     else:
20         print('plase input small')
21 else:
22     print('too many retrys')
for

 

12.文件操作

  file = open('文件路径''模式')
  

 

 

 

 

posted @ 2016-11-06 17:38  DingHongbin  阅读(764)  评论(0编辑  收藏  举报