zoukankan      html  css  js  c++  java
  • 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的语句

  • 相关阅读:
    leetcode 86. Partition List
    leetcode 303. Range Sum Query
    leetcode 1310. XOR Queries of a Subarray
    leetcode 1309. Decrypt String from Alphabet to Integer Mapping
    leetcode 215. Kth Largest Element in an Array
    将numpy.ndarray写入excel
    leetcode 1021 Remove Outermost Parentheses
    leetcode 1306. Jump Game III
    leetcode 1305. All Elements in Two Binary Search Trees
    ICCV2019 oral:Wavelet Domain Style Transfer for an Effective Perception-distortion Tradeoff in Single Image Super-Resolution
  • 原文地址:https://www.cnblogs.com/GeorgeJ/p/9352817.html
Copyright © 2011-2022 走看看