博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1.pyhon入门
阅读量:4677 次
发布时间:2019-06-09

本文共 7707 字,大约阅读时间需要 25 分钟。

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

  参考:Python官网:

       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/22.5>>> 5//22
  • 加入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 nameding3 >>> name4 '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 keyword2 >>> keyword.kwlist3 ['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 >>> girl3 ['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 >>> girl2 ['xiaocang', 'xiaoze', 'xiaobo', 'xiaoteng']3 >>> girl.index('xiaocang')4 05 >>> 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 >>> girl2 ['xiaocang', 'xiaoze', 'xiaobo', 'xiaoteng']3 >>> girl.append('xiaoyuan')4 >>> girl5 ['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 >>> girl2 ['xiaocang', 'xiaobo', 'xiaoteng']3 >>> girl.insert(2,'xiaoze')4 >>> girl5 ['xiaocang', 'xiaobo', 'xiaoze', 'xiaoteng']6 >>>
7.基本操作-插入insert
1 >>> girl2 ['xiaocang', 'xiaobo', 'xiaoze', 'xiaoteng']3 >>> girl.count('xiaoze')4 15 >>>
8.基本操作-统计count
1 >>> girl2 ['xiaocang', 'xiaobo', 'xiaoze', 'xiaoteng']3 >>> girl.reverse()4 >>> girl5 ['xiaoteng', 'xiaoze', 'xiaobo', 'xiaocang']6 >>>
9.基本操作-反转reverse

 

7.元组

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

1 >>> code=('a','b','c','d')2 >>> code3 ('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 
3 >>> type(girl)4
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 >>> dict4 {
'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/python15 count = 016 while (count < 9):17    print (count)18    count = count + 119 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 = 2012 for i in range(3):13     input_num= int(input('please your lucky number:'))14     if input_num == luckynum:15         print('bingo')16         break17     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(
'文件路径'
'模式'
)
  

 

 

 

 

转载于:https://www.cnblogs.com/dhb5188/p/6035774.html

你可能感兴趣的文章
设计模式记录
查看>>
SPF,DSPF,RDPF,SPEF and SBPF.
查看>>
JS学习文章
查看>>
window系统服务器,远程连接mysql数据库。
查看>>
CAS总结之Ticket篇
查看>>
Python2.7升级至Python3.6
查看>>
框架集
查看>>
003
查看>>
HDU 2923 Einbahnstrasse (最短路,3级)
查看>>
实验吧-密码学-我喜欢培根
查看>>
java set集合与List集合练习
查看>>
简短总结一下C#里跨线程更新UI
查看>>
DevExpress下拉多选框 CheckComboboxEdit、CheckedListBoxControl
查看>>
MySQL 忘记Root密码
查看>>
WPF后台自定义文字带背景的选择状态按钮
查看>>
【转自Mgen】 .NET(C#):谈谈各种结束进程的方法
查看>>
用原生javascript做的一个打地鼠的小游戏
查看>>
小米手机 - Charles无法安装证书 因为无法读取证书
查看>>
android 动态壁纸开发
查看>>
你误解了Windows的文件后缀名吗?
查看>>