• python入门学习一


    本文用来记录学习python过程中所遇到的不同的或者记忆不清的一些定义。


    注释

    注释用#

    #此处是注释
    n = 123
    f = 456

    不转义

    Python中r‘  ’表示字符串默认不转义

     print('\	\')
            
    
     print(r'\	\')
     \	\

    除法运算

    在Python中,有两种除法,一种除法是/:计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数

    >>> 10 / 3
    3.333333333333333

    还有一种除法是//,两个整数的除法仍然是整数:

    >>> 10 // 3
    3



    字符串和字节流

    Python 3版本中,字符串是以Unicode编码的,对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符

    >>> ord('A')
    65
    >>> ord('')
    20013
    >>> chr(66)
    'B'
    >>> chr(25991)
    ''

    由于Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes

    Python对bytes类型的数据用带b前缀的单引号或双引号表示:x = b'ABC';

    要注意区分'ABC'b'ABC',前者是字符串(str),后者虽然内容显示得和前者一样,但bytes的每个字符都只占用一个字节。

    以Unicode表示的str通过encode()方法可以编码为指定的bytes;

    >>> '中文'.encode('utf-8')
    b'xe4xb8xadxe6x96x87'

    如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要用decode()方法:如果bytes中包含无法解码的字节,decode()方法会报错;如果bytes中只有一小部分无效的字节,可以传入errors='ignore'忽略错误的字节:

    >>> b'xe4xb8xadxff'.decode('utf-8', errors='ignore')
    ''

    为了避免乱码问题,应当始终坚持使用UTF-8编码对strbytes进行转换。


    格式化

    格式化字符串的方式:占位符和format()

    # -*- coding: utf-8 -*-
    s1=72
    s2=85
    r=s1/s2
    print('小明成绩提升了%.1f 
    ' %(r*100))
    print('小明成绩提升了{0:.1f}%'.format(r*100))

    小明成绩提升了84.7%
    小明成绩提升了84.7%

    列表

    Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。(类比JavaScript中的数组)

    classmates = ['Michael', 'Bob', 'Tracy']

    另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改(指向不能修改,类似于指针指向的那个指向)

    定义只有1个元素的tuple时必须加一个逗号,来消除歧义:t=(1,) 因为括号()既可以表示tuple,又可以表示数学公式中的小括号。

    最后来看一个“可变的”tuple:

    >>> t = ('a', 'b', ['A', 'B'])
    >>> t[2][0] = 'X'
    >>> t[2][1] = 'Y'
    >>> t
    ('a', 'b', ['X', 'Y'])

    上面可以看成,tuple发生了变化,为什么呢?因为tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。若想创建完全不变的,将list也转为tuple即可。


    条件判断;

    所有判断语句(包括循环语句里的这类判断)少了括号,判断条件后有冒号:,条件判断从上向下匹配,当满足条件时执行对应的块内语句,后续的elif和else都不再执行

    if <条件判断1>:
        <执行1>
    elif <条件判断2>:
        <执行2>
    elif <条件判断3>:
        <执行3>
    else:
        <执行4>

    if age >= 18:
        print('adult')
    elif age >= 6:
        print('teenager')
    else:
        print('kid')

    循环

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

    names = ['Michael', 'Bob', 'Tracy']
    for name in names:
        print(name)
    sum = 0
    n = 99
    while n > 0:
        sum = sum + n
        n = n - 2
    print(sum)

    使用dict和set

    为什么dict查找速度这么快?因为dict的实现原理和查字典是一样的。假设字典包含了1万个汉字,我们要查某一个字,一个办法是把字典从第一页往后翻,直到找到我们想要的字为止,这种方法就是在list中查找元素的方法,list越大,查找越慢。第二种方法是先在字典的索引表里(比如部首表)查这个字对应的页码,然后直接翻到该页,找到这个字。无论找哪个字,这种查找速度都非常快,不会随着字典大小的增加而变慢。dict就是第二种实现方式,给定一个名字,比如'Michael',dict在内部就可以直接计算出Michael对应的存放成绩的“页码”,也就是95这个数字存放的内存地址,直接取出来,所以速度非常快。

    dict

    Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。dict内部存放的顺序和key放入的顺序是没有关系的。需要牢记的第一条就是dict的key必须是不可变对象,因为dict根据key来计算value的存储位置

     

    >>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
    >>> d['Michael']
    95
    >>> d['Adam'] = 67
    >>> d['Adam']
    67

    set

    set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

    >>> s = set([1, 1, 2, 2, 3, 3])
    >>> s
    {1, 2, 3}
  • 相关阅读:
    cout 格式化输出
    CreateEvent的用法
    深入理解CRITICAL_SECTION
    const型类成员
    用 const 限定类的成员函数
    C++文件读写详解(ofstream,ifstream,fstream)
    C++中回调函数(CallBack)的使用
    SetTimer函数的用法
    CString转换成int CString类相应函数
    自己设计并制作了一个自己主动温度控制系统
  • 原文地址:https://www.cnblogs.com/JhonFlame/p/8087571.html
Copyright © 2020-2023  润新知