• Python学习—基础


    Python基础

    数据类型和变量

    数据类型

    1. 整数:Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样。

    Python允许在数字中间以_分隔,因此,写成10_000_000_000和10000000000是完全一样的。

    1. 浮点数:小数
    2. 字符串:字符串是以单引号’或双引号"括起来的任意文本。如果字符串内部既包含’又包含"可以用转义字符\来标识
    3. 布尔值:一个布尔值只有True、False两种值,在Python中,可以直接用True、False表示布尔值(请注意大小写),也可以通过布尔运算计算出来。
    4. 空值:None

    python还提供列表、字典等多种数据类型,还允许自定义数据类型

    变量

    变量可以是任意数字类型
    变量在程序中使用一个变量名进行表示,变量名由大小写字母、数字和下划线组成,数字不能开头。

    这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如Java是静态语言。

    常量

    常量就是不能改变的变量,Python中使用大写变量名来表示常量

    两种除法

    # / 除法计算结果是浮点数,即使是两个整数运算
    
    # // 称为地板除,除法结果只取整数部分
    
    • 1
    • 2
    • 3

    字符串和编码

    字符串编码

    • Python3中是以Unicode编码的,支持多语言。
    • Python提供ord()函数,用于获取字符的整数表示,chr()函数反之。
    ord("A")
    # 输出65
    
    chr(66)
    # 输出B
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • python中的字符串类型是str,一个字符对应若干个字节。
    • 若要存储或者网络传输,则要将其变为以字节为单位的bytes
    # python用带有字母“b”前缀的单引号或双引号表示bytes类型的数据
    # 有无前缀的区别是字符占的字节数
    x = b"ABC"
    
    • 1
    • 2
    • 3
    • 以Unicode表示的str,通过encode()方法可以编码为指定的bytes类型
    'ABC'.encode('ascii')
    # 输出b'ABC'
    
    • 1
    • 2
    • 通过decode()方法可以将bytes类型转化为str类型
    b'ABC'.decode('ascii')
    # 输出'ABC'
    
    • 1
    • 2
    • 要计算str包含多少个字符,可以使用len()函数
    • 对于bytes类型,len()函数则是计算字节数

    中文显示问题,当源代码中包含有中文时,一定要保存为UTF-8编码

    字符串格式化

    %占位符
    • 在python中,格式化输出的方法和C语言是一样的,使用%实现
    • 在字符串内部有几个占位符,后面就跟几个变量或者值,顺序一一对应,单个变量括号可以省略
    占位符替换内容
    %d整数
    %f浮点数
    %s字符串
    %x十六进制整数

    其中,格式化整数和浮点数还可以指定是否补0和整数与小数的位数。
    如果你不太确定应该用什么,%s永远起作用,它会把任何数据类型转换为字符串

    print('%2d-%02d' % (3, 1))
    print('%.2f' % 3.1415926)
    # 输出
    # 3-01
    #3.14
    
    • 1
    • 2
    • 3
    • 4
    • 5
    format()方法
    • 另一种格式化字符串的方法是使用字符串的format()方法,它会用传入的参数依次替换字符串内的占位符{0}、{1}
     'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125)
    # 输出
    # 'Hello, 小明, 成绩提升了 17.1%'
    
    • 1
    • 2
    • 3
    f-string

    使用以f开头的字符串,称之为f-string,字符串如果包含{xxx},就会以对应的变量替换

    >>> r = 2.5
    >>> s = 3.14 * r ** 2
    >>> print(f'The area of a circle with radius {r} is {s:.2f}')
    The area of a circle with radius 2.5 is 19.62
    
    • 1
    • 2
    • 3
    • 4

    练习

    • 小明的成绩从去年的72分提升到了今年的85分,请计算小明成绩提升的百分点,并用字符串格式化显示出’xx.x%',只保留小数点后2位
    s1=72
    s2=85
    up=(s2-s1)/s1*100
    # %占位符
    print("小明成绩变化的百分点是%.2f%%"%up)
    # format方法
    print("小明成绩变化的百分点是{0:.2f}%".format(up))
    # f-string
    print(f"小明成绩变化的百分点是{up:.2f}%")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    list和tuple

    list和tuple是python内置的有序集合,一个可变,一个不可变。

    list 列表

    • python一种数据类型,有序集合,可以随时操作其中的元素
    • 用len()函数获取列表元素的个数
    • 用索引访问列表的具体元素,索引从0开始,也可以从后往前(索引从-1开始)
    • 列表元素的数据类型可以不同,也可以是嵌套列表
    #定义列表
    list = [1,2,3,"木头人"]
    
    # 列表末尾增加元素
    list.append('元素')
    
    # 列表指定位置i处插入元素
    list.insert(i,'元素')
    
    # 删除列表末尾元素
    list.pop()
    
    # 删除列表指定位置i处元素
    list.pop(i)
    
    # 列表某个位置替换元素,直接赋值进行覆盖
    
    
    # 列表索引从0开始
    
    L = [
        ['Apple', 'Google', 'Microsoft'],
        ['Java', 'Python', 'Ruby', 'PHP'],
        ['Adam', 'Bart', 'Lisa']
    ]
    
    # 打印Apple
    print(L[0][0])
    
    # 打印Python
    print(L[1][1])
    
    # 打印Lisa
    print(L[2][2])
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    tuple 元组

    • 元组,与list相似,但是元组一经初始化就不能修改,使得代码安全性增加
    • 理解元组的不可修改为“指向不可修改”,当列表作为元组的元素时,列表内元素可以修改,但是元组指向的仍然是一个列表,实际上是不变的
    # 定义元组
    tuple = (1,2,3,"木头人")
    
    # 定义只有一个元素的元组时,要加逗号,避免歧义
    tuple = (1,)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    条件判断

    根据Python的缩进原则,if和else进行匹配,自上而下进行判断,当满足条件时,后面的elifelse都不再执行。

    age = 3
    if age >= 18:
        print('adult')
    elif age >= 6:
        print('teenager')
    else:
        print('kid')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    循环

    Python的循环有两种,一种是for…in循环,依次把list或tuple中的每个元素迭代出来。第二种循环是while循环,只要条件满足,就不断循环,条件不满足时退出循环。

    • break:直接结束循环
    • continue:结束本轮循环,进入下一次循环

    for in 循环

    L = list(range(1,10))
    sum = 0
    for x in L:
        sum = sum + x
    print(sum)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    while 循环

    只要满足条件,就一直循环。条件不满足时退出循环。

    # 计算100以内所有奇数的和
    sum = 0
    n = 99
    while n > 0:
        sum = sum + n
        n = n - 2
    print(sum)
    
    # 依次打印出“Hello,xxx”
    L = ['Bart', 'Lisa', 'Adam']
    while len(L) != 0:
        print("Hello,%s!" % L.pop(-len(L)))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    dict和set

    dict 字典

    python内置了字典,在其他语言中成为map,使用键值对存储,具有极快的查找速度,dict内部存放的顺序和key放入的顺序没有关系。

    >>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
    >>> d['Michael']
    95
    
    • 1
    • 2
    • 3
    • 数据放入字典,除了初始化时指定外,还可以通过key放入
    >>> d['Adam'] = 67
    >>> d['Adam']
    67
    
    • 1
    • 2
    • 3
    • key和value对应,多次赋值会覆盖之前的值
    • 如果key不存在,dict就会报错
    # 要避免key不存在的错误,有两种办法
    
    # 1.通过in判断key是否存在:
    >>> 'Thomas' in d
    False
    
    # 2.通过get()方法,如果key不存在,可以返回None或者指定的value
    >>> d.get('Thomas')
    >>> d.get('Thomas', -1)
    -1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 要删除一个key,用pop(key)方法,对应的value也会从dict中删除:
    >>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
    >>> d.pop('Bob')
    75
    >>> d
    {'Michael': 95, 'Tracy': 85}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • dict是用空间来换取时间的一种方法
    listdict
    查找和插入的时间随着元素的增加而增加查找和插入的速度极快,不会随着key的增加而变慢
    占用空间小,浪费内存很少需要占用大量的内存,内存浪费多

    key一定是不可变对象,在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key。

    set

    • set和dict类似,也是一组key的集合,但不存储value
    • 由于key不能重复,所以,在set中,没有重复的key,重复元素会被set自动过滤掉
    # 要创建一个set,需要提供一个list作为输入集合:
    >>> s = set([1, 2, 3])
    >>> s
    {1, 2, 3}
    
    • 1
    • 2
    • 3
    • 4
    • add(key)方法可以添加元素到set中
    • remove(key)方法可以删除元素

    set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:

    >>> s1 = set([1, 2, 3])
    >>> s2 = set([2, 3, 4])
    >>> s1 & s2
    {2, 3}
    >>> s1 | s2
    {1, 2, 3, 4}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    Elasticsearch打分机制
    CAS:183896-00-6 (Biotin-PEG3-C3-NH2) PEG衍生物
    鲸探发布点评:9月8日发售《汝阳黄河巨龙》数字藏品
    应用案例|基于三维机器视觉的机器人货品拣选系统应用解决方案
    生成式AI - Knowledge Graph Prompting:一种基于大模型的多文档问答方法
    代码随想录 贪心算法-简单题目
    【css面试题】 实现一个盒子的水平竖直居中对齐效果
    创新案例|香氛DTC品牌Scentbird从0到月收百万美元的4大增长运营策略
    运用精益管理思想提升MES管理系统建设水平
    揭秘 Task.Wait
  • 原文地址:https://blog.csdn.net/weixin_44465396/article/details/126829981