python基础理论讲解

关于作者

周李杰,最后一批90后,现居湖北武汉

孤独患者,懒癌中期,无脑幻想者。但却人畜无害,无需远离。

兴趣众多,然无一精通。正努力成为一个有趣的人。

1
2
> print("👆以上是不完整的我") //请我吃大餐将会了解更多
>

[TOC]

前言

一种面向对象的解释型计算机程序设计语言

  • 解释类:解释器
    • 通过解释器来翻译,类似于同声传译人员
    • 优点:更灵活
    • 缺点:效率相对低一些
    • python属于解释型
  • 编译类:编译器
    • 先通过高级语言把程序写出来通过编译器解释成计算机能够看读懂的语言
    • 类似于笔译人员
    • 优点:效率更高
    • 缺点:内容有修改时需重新写,过程比较漫长

python 历史

  • 作者:Guido van Rossum(龟叔)
  • 语言诞生:Python是“蟒蛇”的意思。在1989年圣诞节期间,Guido身处阿姆斯特
    丹。这个都市的美丽和繁华没能填满Guido空虚的内心,周边的喧闹使他内心的寂 寞无处安放(夜的黑已不再纯粹,哈哈)。为了打发这种无趣,Guido决心为他之前孕育的ABC语言开发一个插件,这个插件就是大名鼎鼎的Python(男人因为孤独而优秀啊!)。一个新的脚本解释程序就此诞生。在给这个孩子起名字的时候,Guido取其所爱的一个叫Monty Python的喜剧团体的“Python”。
  • 版本:Python2.0版本将会在2020年停止维护,Python3.0版本将是学习和开发的主流。

设计哲学与定位

  • 优雅
  • 简单
  • 明确

python 特点

  • 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应用场景

  • 数据分析
  • 人工智能
  • 网络爬虫
  • 自动化运维
  • GUI(桌面编程)
  • WEB编程(网站后台开发 PHP、JSP、.net)
  • 数据库编程
  • 数学及科学计算(大数据领域)

编程特性

• 面向过程
• 面向对象
• 函数式编程

数据结构

数据结构就是通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合。这些数据元素可以是数字或者字符,甚至可以是其它类型的嵌套的数据结构

python的最基本数据结构是序列

序列中的每个元素被分配一个序号——即元素的位置,也称为索引。索引从0开始编号

python包含6种内建的数据序列:

​ 列表

​ 元组

​ 字符串

​ Unicode字符串

​ buffer对象

​ xrange对象

基本的几种数据类型

1Intergral类型:

​ 整型:不可变类型(-257,201624583371143)

​ 布尔型:True、False

2 浮点类型:

​ 浮点数(3.1415926)

​ 复数(3+6j)

​ 十进制数字

3.字符串:不可变类型

​ ‘GNU is Not Unix’,”hello”,’’’world’’’

程序执行过程

编写与执行python代码

可以通过两种方式来执行python代码:

  • 交互式解释器

  • python程序文件

    交互式解释器与python程序文件的利弊:

​ 交互式模式下的程序执行完后难以再次运行,但是执行的代码可以立马看到效果;

​ 将编写的程序保存至文件(.py)中可以方便多次运行,但无法立马看到执行效果。

python的程序文件分类:

​ 包含一系列预编写好的语句的程序文件称作“模块”;

​ 能够直接运行的模块文件通常称作脚本(即程序的顶层文件)

逻辑操作符

and 与

or 或

not 非

控制流语句

if、for、while、try

算术操作符

+、-、、/、+=、-=、=、/=

语句和语法

注释:

​ #:可以从一行的任何地方开始

续行:

​ \:只能在行尾

​ ‘’’:闭合操作符,单一语句跨多行。实现多行注释、内置文档等功能

代码组:

​ 缩进相同的一组语句构成的一个代码块

​ 首行以关键字开始,如if、while等,以冒号结束

​ python使用缩进来分隔代码组,同一代码组的代码行必须严格左对齐,否则会造成语法错误

同一行放置多个语句:

​ ;:以分号作为分隔符

模块:

​ 每个python脚本文件都可以被当成是一个模块

​ 模块里的代码可以是一段直接执行的脚本,也可以是一些类似库函数的代码从而可由别的模块执行导入(import)

​ 每一个模块被导入时会被直接执行(仅第一次),因此纯模块文件中通常不会定义函数以外的代码,否则在import时就会被执行

标识符

​ 标识符是计算机语言中允许作为名字的有效字符串集合:

​ 其中有一部分是关键字,它们是语言的标识符,因此是保留字,不能用于其它用途

​ python3的关键字有以下这些:

1
2
3
4
5
False class finally is return None continue	for	lambda try

True def from nonlocal while and del global not with as

elif if or yield assert else import pass break except in raise

​ python还有称为”内建”的标识符集合,虽不是保留字,仍不推荐使用这些特别的名字

python标识符:

​ 第一个字符只能使用字母或下划线;

​ 余下的字符可以使用字母、数字或下划线;

​ 区分字符大小写

基本编程风格

​ 注释:既不能缺少注释,亦要避免过度注释

​ 文档:python允许通过doc动态获得文档字串

​ 缩进:统一缩进4个字串

​ 标识符名称:见名知义

python的变量取名

  • 变量名应该做到见名知义

  • 变量名区分大小写

  • 变量名中有多个单词时有两种方式表示

    • 单词间使用下划线分隔(官方推荐)
    • 首单词小写,后面单词的首字母大写
  • 变量名只能是由下划线、数字、字母组成,不能是空格或者特殊字符(#?<.,$!&*^~)

  • 不能以中文做变量名

  • 不能是保留字

    • 1
      as  assert  break  class  continue  def  del  elif  else  except  exec  finally  for  from  global  if  import  in  is  lamda  not  or  pass  print  raise  return  try  while  with  yield
  • 所有字母都是大写表示常量

python的变量赋值

​ name = ‘tom’

​ Name2 = name

  • 把变量名理解为门牌号,而把其值理解为某一个房间内存回收机制
  • 变量引用值为0时自动进行内存回收
  • 如何·使用变量引用值变为0
  • del 变量名
  • 重新给变量赋值新值

最后,给大家来一个简单的python游戏–猜数字.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
> #!/usr/bin/python
> print("-------这是一个猜数字的小游戏-----------")
> guess= int(input("猜数字:"))
> i=0
> while(guess!=8 and i<3):
> i=i+1
> print(i)
> if guess>8:
> print('大了')
> if i==3:
> i=i+1
> else:
> guess=int(input('请重新输入:'))
> else:
> print('小了')
> if i==3:
> i=i+1
> else:
> guess=int(input('请重新输入:'))
> if guess==8:
> print('猜对了,结束此游戏')
> else:
> print('你的次数已到')
>

注:

以上文本部分选自 廖雪峰老师的博客

廖雪峰:十年软件开发经验,业余产品经理,精通Java/Python/Ruby/Scheme/Objective C等,对开源框架有深入研究,著有《Spring 2.0核心技术与最佳实践》一书,多个业余开源项目托管在GitHub

打赏
  • © 2019-2020 Li Jie
  • Powered by Hexo Theme Ayer
    • PV:
    • UV:

喜欢就打赏吧~

支付宝
微信