Python基础-01基础概念(了解)

一、基础概念(了解)

1. 计算机系统组成

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uNGqsw9F-1609170746303)(Media/image-20201226185406270.png)]

2. 计算机程序执行过程

  1. 用户打开程序,程序开始执行;
  2. 操作系统程序内容相关数据送入计算机的内存
  3. CPU根据程序内容从内存中读取指令
  4. CPU分析处理指令,并为取下一条指令做准备;
  5. 取下一条指令并分析、处理,如此重复操作,直至执行完程序中全部指令,最后将计算的结果放入指令指定的存储器地址

3. 编程语言是什么

编程语言就是人和计算机进行交流的一种语言

常见编程语言

  • Python
  • c / C++
  • Java
  • PHP
  • C#
  • go
  • basic
  • qbasic
  • VB
  • VC

4. 认识python

- 概述

  • Python的作者:Guido van Rossum(龟叔)

  • Python正式诞生于1991年

  • Python 是一种解释型、面向对象的语言

  • 解释型语言的特点:写一行执行一行

  • 编译型: C,java

    • 一起编译
  • Python的解释器

    • 如今有多个语言实现,我们常用的是CPython(官方版本的C语言实现),
    • 其他还有Jython(可以运行在Java平台)、IronPython(可以运行在.NET和Mono平台)、PyPy(Python实现的,支持JIT即时编译)
  • python解释器的作用

    • Python 解释器就是一个语言处理程序
    • 将使用 Python 语言开发的代码解释成机器语言
  • Python 是由 C 语言开发,但是不再有 C 语言中指针等复杂数据类型

  • Python目前有两个版本,Python2和Python3,最新版分别为2.7.13和3.6.2

    • CPython 版本:
      • python2.7 (旧版本)
      • python3.6 (主流版本)
    • 兼容问题解决:
        1. Python3 的很多新特性也被移植到了 Python2.7,作为过渡。如果程序可以在 2.7 运行,可以通过一个名为 2to3(Python 自带的一个脚本)的转换工具无缝迁移到 Python3.
        2. 建议大家学习从 Python3 开始,毕竟这才是未来。

Life is shot, you need Python. 人生苦短,我用Python。

- Python 的优缺点

  • 优点

    • 简单、易学
    • 免费、开源
    • 可读性强
    • 面向对象
    • 丰富的库
    • 可扩展性
      • 可嵌入到 C 和 C++语言。 胶水式语言
    • 如果需要一段关键代码运行得更快或者希望某些算法不公开,可以把这部分程序用 CC++ 编写,然后在 Python 程序中使用它们
    • 可移植性和跨平台
      • Python 会被编译成与操作系统相关的二进制代码,然后再解释执行。这种方式和 java 类似,大大提高了执行速度,也实现了跨平台。
    • ……
  • 缺点

    • 运行速度
    • 国内市场较小
    • 中文资料匮乏

- 应用范围

  1. 科学计算
  2. 人工智能
  3. 大数据
  4. 云计算
  5. web开发
  6. 运维等

5. PyCharm 开发工具的介绍

- 开发环境

开发环境,英文是 IDE(Integrated Development Environment 集成开发环境)。

  • 为什么使用集成化开发工具?
    • 集成化开发工具可以帮助我快速的开发程序
    • 善用智能提示
      • 提高输入效率
      • 避免输入错误

- 工具

  1. IDLE (安装python自带)

  2. Pycharm

  3. 交互模式(脚本 shell 模式)

    1. 进入命令行窗口,输入:python
    2. . >>>即为“提示符”
    3. . 关闭交互窗口:
      1. Ctrl+Z 和回车
      2. 输入 quit()命令
      3. 直接关闭命令行窗口
    4. 中断程序执行:ctrl+C
  4. IDLE 介绍

    1. IDLE 是 Python 的官方标准开发环境,Python 安装完后同时就安装了 IDLE。

    2. IDLE 已经具备了 Python 开发几乎所有功能(语法智能提示、不同颜色显示不同类型等 等),也不需要其他配置,非常适合初学者使用。

    3. IDLE 是 Python 标准发行版内置的一个简单小巧的 IDE,包括了交互式命令行、编辑器、 调试器等基本组件,足以应付大多数简单应用。

    4. IDLE 是用纯 Python 基于 Tkinter 编写,最初的作者正是 Python 之父 Guido van Rossum。

6. 程序基本格式

- 基本格式

  1. 恰当的空格,缩进问题
    1. 逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句 的分组。
    2. 语句从新行的第一列开始。
    3. 缩进风格统一:
      1. 每个缩进层次使用 单个制表符 或四个空格(IDE 会自动将制表符设置成 4 个 空格)
      2. Python 用缩进而不是{}表示程序块
  2. Python 区分大小写

- Python 官方中文文档

https://docs.python.org/zh-cn/3/

- 关于代码规范

  • Python 官方提供有一系列 PEP(Python Enhancement Proposals) 文档
  • 其中第 8 篇文档专门针对 Python 的代码格式 给出了建议,也就是俗称的 PEP 8
  • 文档地址:https://www.python.org/dev/peps/pep-0008/
  • 谷歌有对应的中文文档:http://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_style_rules/

任何语言的程序员,编写出符合规范的代码,是开始程序生涯的第一步

7. python程序相关

1. Python 程序的构成

  1. Python 程序由模块组成。一个模块对应 python 源文件,一般后缀名是:.py。
  2. 模块由语句组成。运行 Python 程序时,按照模块中语句的顺序依次执行。
  3. 语句是 Python 程序的构造单元,用于创建对象、变量赋值、调用函数、控制语句等。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3bw9Fqoi-1609170746305)(Media/image-20201228203034567.png)]

2. 使用\行连接符

一行程序长度是没有限制的,但是为了可读性更强,通常将一行比较长的程序分为多行。这 是,我们可以使用\行连接符,把它放在行结束的地方。Python 解释器仍然将它们解释为同 一行。

a = [10,20,30,40,\
50,60,70,\
80,90,100]

3. 对象

Python 中,一切皆对象。

每个对象由:标识(id - identity)、类型(type)、value(值) 组成。

  1. 标识用于唯一标识对象,通常对应于对象在计算机内存中的地址。使用内置函数 id(obj) 可返回对象 obj 的标识。
  2. 类型用于表示对象存储的“数据”的类型。类型可以限制对象的取值范围以及可执行的 操作。可以使用 type(obj)获得对象的所属类型。
  3. 表示对象所存储的数据的信息。使用 print(obj)可以直接打印出值。

对象的本质就是:一个内存块,拥有特定的值,支持特定类型的相关操作

a = 3  # 如下图

id(a) # 1531372336
type(a) # int
id(3) # 1531372336
type(3) # int

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t1ciE2J6-1609170746308)(Media/image-20201228203248472.png)]

4. 引用(变量是对象的引用)

在 Python 中,变量也称为:对象的引用。因为,变量存储的就是对象的地址

变量通过地址引用了“对象”。

变量位于:栈内存(压栈出栈等细节,后续再介绍)

对象位于:堆内存

  • Python 是动态类型语言

    • 变量不需要显式声明类型。根据变量引用的对象,Python 解释器自动确定数据类型。
  • Python 是强类型语言

    • 每个对象都有数据类型,只支持该类型支持的操作。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iunTyuvz-1609170746311)(Media/image-20201228203338805.png)]

5. 标识符及命名规则

标识符:用于变量、函数、类、模块等的名称。

  • 标识符是一种代号

  • 变量也是一种标识符

  • 标识符命名规则 :

    • 见名知意
    • 标示符可以由 字母下划线数字 组成
    • 不能以数字开头
    • 不能与关键字重名
    • 标识符是区分大小写
    • 双下划线开头和结尾的名称通常有特殊含义,尽量避免这种写法。比如:__init__是类 的构造函数。
  1. 驼峰式命名
    小驼峰式(lower camel case): 除第一个单词外,其它单词首字母大写 ( oneTwoThreeFour )
    大驼峰式(upper camel case): 所有单词首字母大写 ( OneTwoThreeFour )
    • 一般类名时用大驼峰
  2. python 中使用下划线风格定义标识符 ( one_two_three_four)
    • 每个单词都使用小写字母
    • 单词与单词之间使用 _下划线 连接

Python 标识符命名规则

类型规则例子
模块和包名全小写字母,尽量简单。若多个单词之间用 下划线math, os, sys
函数名全小写字母,多个单词之间用下划线隔开phone, my_name
类名首字母大写,采用驼峰原则。多个单词时, 每个单词第一个字母大写,其余部分小写MyPhone、MyClass、 Phone
常量名全大写字母,多个单词使用下划线隔开SPEED、MAX_SPEED

6. 关键字

  • 关键字 就是在 Python 内部已经使用的标识符
  • 关键字 具有特殊的功能和含义
  • 开发者 不允许定义和关键字相同的名字的标示符

注意:

  • 在定义标识符时,不要使用 关键字 做为标识符名,会报错
  • 也不要使用程序定义的功能函数的名字,会改变原来函数的功能,导致程序出错.

通过以下命令可以查看 Python 中的关键字

In [1]: import keyword
In [2]: print(keyword.kwlist)

提示:关键字的学习及使用,会在后面的课程中不断介绍

['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', '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']

7. 注释

作用

  • 对代码起到解释说明的作用,注释内容不是真的代码,并不执行

分类

  1. 单行注释(行注释)
# 注释内容在代码后面增加的单行注释
  • 在程序开发时,同样可以使用 # 在代码的后面(旁边)增加说明性的文字
  • 但是,需要注意的是,为了保证代码的可读性注释和代码之间 至少要有 两个空格
print("hello python")  # 输出 `hello python`
  1. 多行注释(块注释)
  • '''
    多行注释
    	若干注释内容
    	若干注释内容
    '''
    
    """
    	这也是多行注释
    	若干注释内容
    """
    
  1. 快捷键
  • win:
    ctrl + /
  • mac:
    command + /

8. 字面量

通俗的来讲就是一个一个的值。它其实就表示字面的值。

字面量在程序中是可以直接使用的。 例如:1、123、a、hello等等已经被定义好的量。

**注:**我们一般都不会直接使用字面量。不利用对代码进行修改,会导致工作量变大。

举个例子: a = 123 在这个表达式中,a是变量,123是字面量,很好的体现了变量是用来保存字面量的。

9. 常量

Python 不支持常量,即没有语法规则限制改变一个常量的值。我们只能约定常量的命名规则,以及在程序的逻辑上不对常量的值作出修改。

MAX_SPEED = 120

10. 时间

- 时间的表示
  • 计算机中时间的表示是从“1970 年 1 月 1 日 00:00:00”开始
  • 整数部分
  • 小数部分毫秒(1/1000 秒)
  • 我们也把 1970 年这个时刻成为“unix 时间点”

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-79qns4ie-1609170746314)(Media/image-20201228224953638.png)]

- 相关函数
  • time.time():获得当前时刻,返回的值是以秒为单位,带微秒 (1/1000 毫秒)精度的浮点值。
    • 需要导入 time包
import time
b = int(time.time()) # 秒
print(b)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值