python入门

1. 编程语言分类

机器语言: 用二进制指令编程,本质是直接操作硬件;执行效率高, 开发效率低,学习难度高

汇编语言: 用英文标识符表示一串二进制,本质亦为直接操作硬件, 主要用于操作系统的开发

高级语言:根据翻译方式不同分为编译型和解释型-用人类的字符去编写程序, 主要用于开发应用程序

编译型( C语言):编译一次,拿到结果可以重复执行, 无需重新翻译;类似谷歌翻译;C语言的编译器为gcc

翻译: 程序 –》 gcc –》 机器语言; 执行: 机器语言-》CPU

优点: 执行效率高 (第二次以后)

缺点: 调试程序麻烦,跨平台性差

解释型(python, java),边翻译边执行, 需要解释器;类似同声传译

程序-》C解释器 等-》C语言的功能(一次性转换为中间格式)-》机器语言-》CPU执行

优点: 调试程序方便,开发效率高, 跨平台性高(选好解释器)

缺点:执行效率低

python 的解释器有多个种类,cpython指的是用C语言开发的python 的解释器

学习难度: 机器语言》汇编语言》编译型高级语言》解释型高级语言

执行效率:机器语言》汇编语言》编译型高级语言》解释型高级语言

开发效率:机器语言《汇编语言《编译型高级语言《解释型高级语言

相比于执行速度,开发速度为瓶颈

2. python解释器安装,多版本共存

我的电脑-》属性-》高级系统设置-》环境变量-》修改系统PATH

win10:直接添加

win7: C:Usersoldboy1;C:Usersoldboy2;C:Usersoldboy3;D:python36

mac:

          /etc/profile

          PATH=python的安装路径:$PATH

          export PATH

          source /etc/profile

3. ** python的两种运行方式

交互式:调试方便,无法永久保存代码

脚本文件方式:永久保存代码; 启动python 解释器–》将路径D: est.txt所指代码读入内存-》解释,执行

4. 变量

什么是变量: 变量时一种可以反映出状态变化的机制

** 为什么需要变量:程序的执行本质就是一系列状态的变化。 需要一种机制能够反映/保存下程序执行时状态以及状态的变化

如何定义变量: 变量名= 变量值; 内存中分配一个空间给变量值, 变量名(门牌)指向变量值,是对值的引用

变量值的引用计数:指向同一id的变量值的引用次数

增加引用计数: X=1,Y=X =》1的引用次数变为2

减少引用计数: X= ‘egon’,  del Y =》0 的引用次数变为0

            or    X=0,X=1 =》 0 的引用次数变为0

python自带自动垃圾回收机制(了解):在程序运行中,python自动回收引用次数变为0的变量值

del y: 删除y与原变量值的绑定关系

变量的命名规范:

a. 变量名只能为字母,数字或下划线的任意组合

b. 变量名的第一个字符不能为数字 (开头为下划线的变量名比较特殊,一般推荐用字母开头)

c. 变量名不能为关键字

变量名的定义方式 (描述清楚变量值):

驼峰体: AgeOfOldboy

下划线: age_of_oldboy (推荐使用)

** 变量值的三个特征: id, type, value

id不是内存地址, 仅为在内存中的位置; id相同,type和value必相同; value 相同, type必相同但value可能不同

** is: 身份运算,比较的是id; ==:比较的是值 (身份运算)

e.g.: s1 =“xxxxxxx”, s2=“xxxxxxx”, s1 == s2(T), s1 is s2 (F)

5. 常量:约定俗成全部大写表示常量

6. 用户与程序交互

input(): 接收用户的输入,并把输入内容转成字符串

7. 注释:增强可读性

单行注释: #

多行注释:““”     “””

8. 文件头:

#!/usr/bin/env python

# coding: utf-8

9. 基本数据类型

整型(数字)int : level=10 #level=int(10)——()里必须为整数

浮点型(数字)float

字符串 str : 单双三引号没有区别, 但需考虑单双引号的配合; 包含在引号内的一串字符(包括空格)

列表 list:中括号中,用逗号分隔的多个值,值可以是任意类型 索引a[1][0]

字典 dict:  花括号中,用逗号分隔的多个值,每组元素都为key:value的形式,其中value可以是任意值, key为不可变类型(规定)。字典比列表多了一个映射关系 a[key]

布尔 bool:True False, 表判断

字符串的拼接: + (效率低,不推荐,且只能字符串之间相加) / * (数字)

列表 vs 字典 : 字典的存取更快, 但浪费空间

** 所有数据类型都自带布尔值, None, 0, 空(单纯的空字符串,空列表,空字典)为 True, 其余为False

control +?:批量(解除)注释

shift + table : 整体左,右移

精简 《 可读性

10. ** 可变类型和不可变类型

可变(id不变时,值可变): 字典,列表

不可变:(值变, id必变,即创建了新的内存空间):数字,字符串

11. 格式化输出

%s 通用, 字符串, 数字

%d 用于数字

name = input (‘your name: ‘)

age = input (‘your age: ‘)

print (‘My name is %s, my age is %s’ % (name., age))

print (‘My name is %s, my age is %s’ % (‘ab’, 18))

12. 基本运算符

/ 真正除

% 取模/余

** 取幂

// 返回商的整数部分

用!=, 不用 <>

age = age+1 《=》 age+=1 : 增量赋值

逻辑与and, 或or, 非not; T or F and F, True

13. 流程控制之if else

if 条件:

    缩进代码块

elif 条件:

    缩进代码块

else:

    缩进代码块

14. 流量控制之while循环

while 条件:

    循环体

#如果条件为真,循环体执行,再次循环,判断条件

#如果条件为假, 循环体不执行, 循环终止

避免死循环

import time

num = 0

while True:

    print(‘count’, num)

    time.sleep (1) #模拟I/O,避免卡

    num+=1

tag = True

while tag:

    ……..

    while tag:

            …….

            While tag:

                Tag = False

break: 退出本层循环

continue:退出本次循环 (之后的代码不执行), 进入下一次循环

while + else : 当while循环正常执行完, 中间没有被break中止的话,就会执行else后面的语句; 如果执行过程中被break, 就不会执行else的语句

原文地址:https://www.cnblogs.com/GeorgeJ/p/9352817.html