zoukankan      html  css  js  c++  java
  • Python基础入门

    1. 代码的编码&注释

    1.1 编码

    1)编码概述

    计算机中所有的数据本质上都是以0和1的组合来存储的,编码类似于一个密码本,为文字和0/1的组合提供对应关系。

    在文件保存时会根据编码的对应关系找到其对应的0/1写入到硬盘文件中,一般在文件保存时会让用户选择以某种编码保存。

    计算机中有很多种编码方式,如gbk和utf-8,每种编码都有自己的一套对应关系,用不同的编码保存文件时,硬盘中存储的0/1组合也是不同的。

    保存文件使用某种编码,打开文件就必须使用同样的编码,否则就会乱码。

    2)ASCII码

    ASCII码只能支持 符号、字母、数字。且用8位来表示一个字符。8位表示一个字节(1Byte=8bit)

    ASCII码中的最开头都是0,是最初为了以后扩展而准备的。

    ASCII码表中有256个对应关系(0到255)

    • 0表示NULL
    • ASCII码中的0~9指的是字符串"1"、"2"、... "9"与二进制的对应关系

    3)unicode字符集

    为了支持其他所有国家的文字,就弄出了万国码unicode

    编码和字符集:

    • ASCII编码,直接是字符和二进制的对照表,此二进制可在计算机中用于内存计算、硬盘存储、网络传输
    • unicode字符集,是字符和码位的对应关系,码位本质上也是二进制,此二进制可在计算机中用于内存计算,但一般不会做硬盘存储网络传输
    • utf-8编码:是对unicode字符集的码位进行转换处理得到的二进制,此二级制可用于内存计算、硬盘存储、网络传输等

    unicode字符集:

    • 现在unicode使用4个字节来表示所有字符,即ucs4
    • ucs4其实是对ucs2的一个扩展,ucs4默认使用4个字节表示码位,而ucs2用2个字节表示码位
    • ucs4会在ucs2表示的码位前加0,即:ucs2:01101011 01100110 变为 ucs4:00000000 00000000 01101011 01100110

    ucs4的优缺点:

    • 缺点:因为都使用4个字节,同样的字符的码位会更占空间;所以在网络传输、硬盘存储时会把unicode字符集的码位转为(压缩)成utf-8等编码的二进制再进行传输和硬盘存储
    • 优点:可以表示所有字符并且长度固定4字节,方便内存中进行数据计算

    4)utf-8编码

    utf-8编码其实就是对unicode字符集的码位进行压缩加工处理得到的,把二进制码位中不必要的位去掉。

    utf-8是为unicode编码设计的一种在存储和传输时节省空间的编码方案,使用1、2、3、4个字节表示所有字符,优先使用1个字符、无法满足则使增加一个字节,最多4个字节。

    utf-8是一套以8位为一个编码单位的可变长编码,会将一个码位编码为1到4个字节。

    1.2 指定编码&注释

    1)Py中指定代码的编码

    代码文件顶部指定编码方式:(必须在首行顶格写

    # -*- coding:utf-8 -*-

    写好代码后,以对应的编码规则保存(默认是以utf-8编码保存),然后Python解释器运行代码文件(使用utf-8编码去打开并运行代码)。

    2)注释

    • 单行注释
    # 单行注释,解释器忽略此行,不按照代码去解释此行代码
    name = 'hgzero'
    • 多行注释
    """
    注释多行,三引号括起来的内容解释器会忽略
    """
    print("傻×")

    2. 数据类型

    2.1 int(整型)

    整型表示数学中的整数,在Py中称为整型,支持 加、减、乘、除、取余、指数 等操作。

    # 创建整型 666,并使用并使用print输出
    print(666)
    # 计算 2 加 10 的结果,并使用print输出
    print(2+10)
    # 计算 2 乘以 10 的结果,并使用print输出
    print(2*10)
    # 计算 10 除以 2 的结果,并使用print输出
    print(10/2)
    # 计算 10 除以 3 得的余数,并使用print输出
    print(10%2)
    # 计算 2 的 4 次方,并使用print输出
    print(2**4)

    2.2 str(字符型)

    字符型就是表示字符串,如姓名、地址等。字符串必须用引号引起来

    字符串支持字符串的  加、乘:

    • 加:字符串的拼接,要求字符串只能和字符串拼接
    • 乘:让此字符串重复出现多少次,要求必须是整型和字符串相乘
    print("我是你爸")
    
    # 字符串相加(字符串只能拼接字符串,不能拼接其他类型)
    print("不好意思," + "我依然是你爸")   # 将这两段字符串拼接起来
    
    # 字符串相乘
    print("快叫爸爸" * 9)                # 将此字符串重复9次

    2.3 bool(布尔型)

    bool值表示某种判断所得到的 真、假。

    bool值只能有两个值:True / False。

    # 判断1是否大于2,如果是则为True,否则即为False,print输出True或者False
    print(1>2)
    
    # 判断整数89是否等于64,print输出True或者False
    print(89 == 64)
    
    # 判断字符串"2b"是否等于"傻狗",print输出True或者False
    print("2b" == "傻狗")

    2.4 类型转换

    不同的数据类型都有不同的功能,但可以将其进行类型转换。

    1)转换为整型

    只有“数字”格式的字符串才能转换为整型。

    # 将“数字”格式的字符串转换为整型
    print( int("89") + int("64"))
    
    # 将布尔值转换为整数类型
    print(int(True))  # 输出 1
    print(int(False)  # 输出 0

    2)转换为字符串

    # 将整型转换为字符串
    print( str(666)+str(999) )
    
    # 将布尔值转换为字符串
    print( str(True) )    # 得到字符串True
    print( str(False) )   # 得到字符串False

    3)转换为布尔值

    整型转换为布尔值时,只有0转换为False,其他均为True。

    字符串转换为布尔值时,只有空字符为False,其他均为True。

    3. 输出&输入&字符串格式化

    3.1 输出

    print用于将代码的结果输出到终端设备(标准输出)。

    print在输出时默认会在结尾换行,因为默认定义了 end=" "

    • 不换行,加入 end=""表示print结束时不再加  而换成空
    # -*- coding: utf-8 -*-
    print("俄爹虐你千百遍, ", end="")
    print("你待俄爹如初恋, ", end="")
    print("一句卧槽怎奈何. ", end="
    ")  # 默认就是end="
    "
    
    print("root", "passwd", "uid", "gid", sep=":")     # 以 :对前面的各个字符串片段进行拼接

    3.2 输入

    input用于实现用户交互。input输出的内容是字符串类型,即使输出了数字它也是字符型。

    name = input("请输入用户名:")   # 这里的字符串为打印到屏幕上的内容,用户输出的结果会被赋值给name变量
    print(name)                    # 打印name变量,是一个字符型
    
    print("现在进行加法运算")
    num1 = input("请输入第一个数字:")
    num2 = input("请输入第二个数字:")
    value = int(num1) + int(num2)
    print(value)

    3.3 字符串格式化

    一般称字符串中的%s叫占位符,而占位符被替换的过程叫字符串格式化。

    在字符串格式化时,如果想要输出%,则必须写两个%%才能正确输出%

    1)常用的字符串格式化方法

    # 最常用的字符串格式化
    like = "my name is %s ,and my age is %d" % ("hgzerowzh", 21)
    print(like)
    
    print("welcome to %s" % "China")
    print("the num is %.2f" % 9.1358567) # 百分号后面的.2f表示浮点数保留小数点后两位小数,并进行四舍五入
    
    
    # 字典形式的字符串格式化
    print("my name is %(name)s, and the age is %(age)d" % {"name": "hgzerowzh", "age": 21})  

    2)两种format的字符串格式化

    my_name = "my name is {name},and age is {age}"
    print(my_name.format(name="hgzero", age=21))               # 有两种给format传值的方式
    print(my_name.format(**{"name": "hg", "age": 23}))         # 可传入字典或列表,列表用*[] , 列表用**{}
    
    print(my_name.format_map({"name": "wuzhihao", "age": 22})) # 这种字符串格式化需要传入字典的形式

    4. 变量

    4.1 变量和变量名

    1)变量

    变量就类似于别名和外号,可以通过变量名来操作其对应的值。

    格式:【变量名 = 值】

    name = "shit"
    age = 70
    test = 6 > 4
    address = "ccp" + name

    2)变量名

    变量名的命名规则:

    • 只有由 字母、数字、下换下 组成
    • 不能由数字开头
    • 不能是Python的内置关键字

    建议的命名方式:

    # 下划线命名方式
    your_father = "me"
    my_son = "you"
    
    # 驼峰式命名方式
    yourFather = "hgzero"
    mySon = "ccp"

    4.2 内存指向

    无人指向的数据会被标记为垃圾,由解释器自动化回收。

    name = "hgzero"
    # 创建一块区域保存字符串"hgzero",然后将name指向这块区域
    
    new_name = name
    # new_name会指向name所指向的那块内存区域
    
    name = "hgzerowzh"
    # 让name改为指向"hgzerowzh"的那块区域
    
    
    num = 18
    age = str(num)
    # num会指向整数18的那块空间,age会另外再开辟一片空间来存放字符串

    5. 条件语句

    5.1 基本条件语句

    if 和 else 下面的代码都需要相同的缩进(一般为4个空格)

    username = "ccp"
    password = "20204"
    if username == "ccp" and password == "20204":
        print("恭喜你,登录成功")
    else:
        print("登录失败")

    5.2 多条件判断

    1)格式

    if 条件A:
        条件A成立则执行此处代码
    elif 条件B:
        条件A不成立,条件B成立,则执行此处代码
    elif 条件C:
        条件A/B都不成立,条件C成立,则执行此处代码
    ...
    else:
        以上条件都不成立,则执行此处代码(如果没有功能,也可以把else省略)

    2)示例

    num = input("请输入数字")
    data = int(num)
    if data > 6:
        print("太大了")
    elif data == 6:
        print("刚刚好")
    else:
        print("太小了")

    5.3 条件语句嵌套

    if 条件A:
        if 条件B :
            写代码...
        else:
            写代码...
    elif 条件C:
        写代码...
    else:
        if 条件D:
            写代码...

    6. 循环语句

    6.1 while循环

    1)基本格式

    while 条件:
        ...
        ...
        可能有很多行码(这种在while缩进里面的代码统称循环体)

    2)while ... else ... 语句

    当while正常的结束,就会执行else中的代码;如果while语句被break强行退出,则不会执行else

    # 这段代码中的else语句就不会被执行
    count = 0
    while count <= 5:
        print('loop', count)
        if count == 3:
            break
        count += 1
    else:
        print('loop is done...')
    print('out of loop')

    3)示例

    print("开始")
    flag = True
    while flag:
        print("朕,一统天下。")
        flag = False
    print("结束")
    
    
    print("开始")
    num = 1
    while num < 5:
        print("我一直是你爸")
        num = num + 1
    print("结束")

    6.2 break & continue 关键字

    1)break

    break只能出现在循环体中,用于终止循环。

    循环体一旦遇到break,则立即终止循环,从break的位置直接跳出循环,去执行循环语句之后的代码。

    print("开始")
    i = 1
    while True:
        print(i)
        i = i + 1
        if i == 101:
            break
    print("结束")

    2)continue

    continue用于结束本次循环,开始下一次循环。

    在循环体中遇到continue之后,本次循环不再执行continue下面的代码,直接回到while条件判断的位置,开始下一次循环。

    print("开始")
    i = 1
    while True:
        if i == 7:
            i = i + 1
            continue
        print(i)
        i = i + 1
        if i == 101:
            break
    print("结束")

    7. 运算符

    7.1 运算符的种类

    1)算术运算符(如:加减乘除)

    2)比较运算符(如:大于、小于)

    3)赋值运算符(如:变量赋值)

    4)成员运算符(如:是否包含)

    5)逻辑运算符(如:且、非)

    7.2 逻辑运算

    1)规律

    • or:看第一个值,如果是“真”,则选择第一个值;否则选择第二个值
    • and:看第一个值,如果是“假”,则选择第一个值;否则选择第二个值
    v1 = 4 and 8
    v2 = 0 and 6
    v3 = -1 and 88
    v4 = "" and 7
    v5 = "shit" and ""
    v6 = "" and 0
    v7 = 0 and "fuck"
    print(v1,v2,v3,v4,v5,v6,v7)
    
    结果:8 0 88    0

    2)示例

    遵循的优先级:先处理and再处理or

    v1 = 1 and 6 or 8 and 0 or ""
    # 结果:v1 = 6 # 流程分析: # 第一步:处理 1 and 6,得到 v1 = 6 or 8 and 0 or "" # 第二步:处理 8 and 0,得到 v1 = 6 or 0 or "" # 第三步:处理 6 or 0 ,得到 v1 = 6 or "" # 第四步:处理 6 or "",得到 6

    7.3 运算符优先级

    算术运算符 > 比较运算符 > 逻辑运算符(not > and > or)

  • 相关阅读:
    在redhat上搭建redmine
    工具第二天 cocoaPods 私有库的创建
    回归 从注释开始 appledoc
    Chrome浏览器插件开发-关于案例
    Chrome浏览器插件开发-淘宝自动登录
    IOS开发-本地持久化存储sqlite应用
    IOS开发-表单控件的应用
    如何安全可靠的处理后台任务
    Cache应用/任务Mutex,用于高并发任务处理经过多个项目使用
    报表的缓存基本存储和读写
  • 原文地址:https://www.cnblogs.com/hgzero/p/13393629.html
Copyright © 2011-2022 走看看