• 测验


    1、Python 列表表达式

    [表达式 for 变量 in 列表] or [表达式 for 变量 in 列表 if 条件]

     就是把得到的每一个 li 值 都放到 for 前面的表达式中计算 ,然后生成一个列表。

    2、函数参数的传值

    传入函数的是实际参数值的复制品,不管在函数中对这个复制品如何操作,实际参数值本身不会受到任何影响。

    def用于写一个程序, 好在后面重复使用。直接执行函数就可以重复执行

     

     从上面的运行结果来看,在 swap() 函数里,a 和 b 的值分别是 9、6,交换结束后,变量 a 和 b 的值依然是 6、9。从这个运行结果可以看出,程序中实际定义的变量 a 和 b,并不是 swap() 函数里的 a 和 b 。

    如果实际参数的数据类型是可变对象(列表、字典),则函数参数的传递方式将采用引用传递方式。需要注意的是,引用传递方式的底层实现,采用的依然还是值传递的方式。

     从上面的运行结果来看,在 swap() 函数里,dw 字典的 a、b 两个元素的值被交换成功。不仅如此,当 swap() 函数执行结束后,主程序中 dw 字典的 a、b 两个元素的值也被交换了。这很容易造成一种错觉,即在调用 swap() 函数时,传入 swap() 函数的就是 dw 字典本身,而不是它的复制品。但这只是一种错觉,下面还是结合示意图来说明程序的执行过程。

    程序开始创建了一个字典对象,并定义了一个 dw 引用变量(其实就是一个指针)指向字典对象,这意味着此时内存中有两个东西:对象本身和指向该对象的引用变量。

    通过上面介绍可以得出如下两个结论:

    1. 不管什么类型的参数,在 Python 函数中对参数直接使用“=”符号赋值是没用的,直接使用“=”符号赋值并不能改变参数。
    2. 如果需要让函数修改某些数据,则可以通过把这些数据包装成列表、字典等可变对象,然后把列表、字典等可变对象作为参数传入函数,在函数中通过列表、字典的方法修改它们,这样才能改变这些数据。

    3、排序函数

    sort()和sorted()都属于Python list的排序方法,sort()属于永久性排列,直接改变该list; sorted属于暂时性排列,会产生一个新的序列。

    #sorted()
    >>> sorted([5, 2, 3, 1, 4])
    [1, 2, 3, 4, 5]

    #sort()
    >>> L = [5, 2, 3, 1, 4]
    >>> L.sort()
    >>> print L
    [1, 2, 3, 4, 5]

    把一句话的每个单词按照开头的字母排序

    '''
    a = my_str.upper()
    print(a)
    b = a.split(' ')       //将字符串进行切片。用‘ ’将其隔开 
    print(b)
    b.sort()               //将每个字符串按首字母排序。升序
    print(b)
    #your solution here
    '''


    #python list 排序
     
    def my_key1(x):
        return x % 10
    aList = [4, 5, 1, 2, 12, 34, 56, 9 ,80]
    aList.sort() #默认按升序排列
    print(aList)
     
    aList.sort(reverse = True) #按降序排列
    print(aList)
     
    #www.iplaypy.com
     
    aList.sort(key = my_key1) #根据key函数,按照个位数进行升序排列
    print(aList)
     
    def my_key2(x):
        return x[1]
    aList = [(4,'ab'), (56,'c'), (1,'bb'), (102, 'a')]
    aList.sort(key = my_key2) #按照每个元组的第2分量,即字符串排序
    print(aList)
     
    4、python的递归
    递归的特点:
    1. 必须有一个明确的结束条件,要不就会变成死循环了,最终撑爆系统
    2. 每次进入更深一层递归时,问题规模相比上次递归都应有所减少
    3. 递归执行效率不高,递归层次过多会导致栈溢出

    //阶层

    //斐波拉契

    //用二分法找指定值。从中间开始找

    5、字符集

    序号 年份 编码 标准协会 特点 二进制长度 字符长度 表现
    1 1967 ASCII 美国国家标准学会
    (American National Standard Institute , ANSI )
    只能表示英文/数字/控制符符/现世符
    不能表示中文
    7位或8位二进制数组 1个字节 0~31,127(共33位)表示控制字符或者通信专用字符
    32~126(共95为)表示字符,32是空格
        48~57表示0~9个阿拉伯数字
    65~90表示26个大写英文字母
    97~122表示26个小写英文字母
    其他表示标点符号和运算符号等
    128~255是扩展ASCII,每个字符的第8位用于确定附加的128个特俗符号字符/图形/外来字母
    2 1981 GB2312 中国国家标准总局 可以表示中文,图形字符
    古汉字不能支持
    2组8进制位 2个字节 3755个一级汉字
    3008个二级汉字
    682个拉丁/希腊字母/日文片假名/片假名字母/俄语西里尔字母
    3 1995 GBK 中华人民共和国
    全国信息技术标准化技术委员会
    兼容GB2312
    windowns中文版系统的编码
    2组8进制位 2个字节 GB 2312 中的全部汉字、非汉字符号。
    BIG5 中的全部汉字。
    与 ISO 10646 相应的国家标准 GB 13000 中的其它 CJK 汉字,以上合计 20902 个汉字。
    其它汉字、部首、符号,共计 984 个。
    4 2001 GB18030 信息产业部和国家质量技术监督局 1字节与ASCII兼容
    2字节与DBK兼容
      1/2/4个字节 70244多个,各种少数民族字符
    5 1994 Unicode 非营利机构统一码联盟 跨语言跨平台
    英文浪费一半以上空间存储
    至少2个字节 英文1个字节
    中文2个字节
    16位来统一表示所有的字符
    原来8位全部扩充到16位
    6 6 UTF-8 Ken Thompson
    RFC 3629
    Unicode实现方式
    伴随互联网出现
    每次传输8位数据
    使编码无国界
    万国码
    可变长 ASCII1个字节
    欧洲字符2个字节
    中文3个字节
    编码体积大

     6、get命令

    一: 初始化本地仓库,并提交内容到本地

    需要先打开 命令行终端,然后通过 cd 命令切换到需要添加到github 的项目的目录下,然后依次执行如下命令, 具体命令及其含义如下:

    1). touch README.md
    创建说明文档,

    2). git init
    初始化本地仓库

    3). git add .
    添加全部已经修改的文件,准备commit 提交
    该命令效果等同于 git add -A

    4). git commit -m ‘提交说明’
    将修改后的文件提交到本地仓库,如:git commit -m ‘增加README.md说明文档

    二: 连接到远程仓库,并将代码同步到远程仓库

    1). git remote add origin 远程仓库地址
    连接到远程仓库并为该仓库创建别名 , 别名为origin . 这个别名是自定义的,通常用origin ; 远程仓库地址,就是你自己新建的那个仓库的地址,复制地址的方法参考 第二张图。
    如:git remote add origin https://github.com/CnPeng/MyCustomAlertDialog.git 这段代码的含义是: 连接到github上https://github.com/CnPeng/MyCustomAlertDialog.git 这个仓库,并创建别名为origin . (之后push 或者pull 的时候就需要使用到这个 origin 别名)

    2). git push -u origin master
    创建一个 upStream (上传流),并将本地代码通过这个 upStream 推送到 别名为 origin 的仓库中的 master 分支上

    -u ,就是创建 upStream 上传流,如果没有这个上传流就无法将代码推送到 github;同时,这个 upStream 只需要在初次推送代码的时候创建,以后就不用创建了

    另外,在初次 push 代码的时候,可能会因为网络等原因导致命令行终端上的内容一直没有变化,耐心等待一会就好。

    三:继续修改本地代码,然后提交并推送到github

    做完上面三个步骤之后,就实现了将本地代码同步到github的功能,接下来要做的事情就是继续修改代码,然后提交并推送到github

    1). git add .
    添加全部修改的代码,准备提交

    2). git commit -m ‘提交说明’
    将修改后的代码先提交到本地仓库

    3). git pull
    如果是多人协作开发的话,一定要先 pull ,将 github 的代码拉取到本地,这样在 merge 解决冲突的时候稍微简便些。默认拉取到 master分支(如果只是自己做这个项目,可以忽略pull)

    4). git push
    将代码推送到 github , 默认推送到 别名为 origin 的仓库中的 master 分支上。

    5). 注意事项:
    如果有多个远程仓库 或者 多个分支, 并且需要将代码推送到指定仓库的指定分支上,那么在 pull 或者 push 的时候,就需要 按照下面的格式书写:
    git pull 仓库别名 仓库分支名

    7、with open

    用python的时候,会经常遇到文件数据库的open,但总会不小心忘了close

    用with open 语句就能很好的解决这个问题,它会在语句执行完后,自动执行close()

    要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符:

    f = open('/Users/michael/test.txt', 'r')   //文件地址,读写格式   ‘w’写格式   ‘rb’二进制    如果要读取非utf-8文本文件 后面还要加一个encoding='gbk'
    如果文件打开成功,接下来,调用read()方法可以一次读取文件的全部内容,Python把内容读到内存,用一个str对象表示:
    f.read()
    'Hello, world!'
    最后一步是调用close()方法关闭文件。文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的
    f.close()

    用with open用完了之后会自己调用close()方法
    with open('/path/to/file', 'r') as f:
        print(f.read())
    8、列表的拆解

    一、将大列表拆分为小列表

    >>> a = [1,2,3,4,5,6,7,8,9,0]

    >>> n = 3
    >>> c= [a[i:i+n] for i in range(0, len(a), n)]

     二、将大列表套小列表转化为一个列表

    复制代码
    >>> a
    [[1], [2], [3]]
    >>> b = []
    >>> [b.extend(li) for li in a]
    [None, None, None]
    >>> b
    [1, 2, 3]
    复制代码
    
    
    9、解压赋值

     * tuple  ** dict

    1.字符串解压

    2.列表解压

     

    
    


  • 相关阅读:
    洛谷 P2048 [NOI2010]超级钢琴(优先队列,RMQ)
    洛谷P1074 靶形数独(跳舞链)
    洛谷P1337 [JSOI2004]平衡点 / 吊打XXX(模拟退火)
    洛谷P4003 无限之环(费用流)
    洛谷P3264 [JLOI2015]管道连接(斯坦纳树)
    洛谷P3190 [HNOI2007]神奇游乐园(插头dp)
    洛谷P3272 [SCOI2011]地板(插头dp)
    常用的端口配置
    Win7+Eclipse+Hadoop2.6.4开发环境搭建
    Windows10+eclipse+hadoop2.7.1环境配置+wordcount-折腾笔记
  • 原文地址:https://www.cnblogs.com/bojack-10-05/p/12777223.html
Copyright © 2020-2023  润新知