程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2024-11(2)

Python3.0学习

发布于2019-08-07 14:55     阅读(981)     评论(0)     点赞(3)     收藏(2)


基础篇

  • 简单地理解Python中的
if __name__ == "__main__":
	main()
  • 1
  • 2

https://blog.csdn.net/yjk13703623757/article/details/77918633

  • name = "konichan"
    print("my id is %s",name)
    print("my id is %s" % name)
    结果是my id is %s konichan 以及my id is konichan注意逗号的作用(相当于加号),name并不是参数。

  • for _ in range(n): (注意还有个冒号哈哈哈)
    就相当于从0开始循环到n

  • 局部变量不会被全局的影响到

  • ist.append(200)在列表最后附加
    list.insert (1, 400) 在第一个数后面镶嵌
    list += [1000, 2000]在列表后面附加两个数
    list.remove(3) 去3这个元素
    list.title(), end=' '所有单词都是以大写开始,直到遇到空格才结束,均为小写见istitle()
    list2 = sorted(list1) 按照字母表排序
    list3 = sorted(list1, reverse=True) 反过来
    list4 = sorted(list1, key=len) 按照字长

  • 元组中的元素是无法修改的 list_tuple = tuple(list)

  • 集合跟数学上的集合是一致的,不允许有重复元素,而且可以进行交集、并集、差集等运算。
    set1.add(4)

  • 字典是另一种可变容器模型,类似于我们生活中使用的字典,它可以存储任意类型对象,与列表、集合不同的是,字典的每个元素都是由一个键和一个值组成的“键值对”,键和值通过冒号分开。
    scores = {'骆昊': 95, '白元芳': 78, '狄仁杰': 82}
    print(scores.popitem())删除最后的
    print(scores.pop('骆昊', 100))

  • 循环相关
    while True语句中一定要有结束该循环的break语句,否则会一直循环下去的,while是逻辑判断
    continue 语句跳出本次循环,而break跳出整个循环。
    continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环,永不歇菜

  • 中括号 python—索引与切片总结(每次看到中括号就很迷惑,其实这是多维的切片)

  • 切片(Slice)—重点!!
    一维切片一般的就是[开始:结束:步长](若是高维数组,则该切片从高维的进行)
    List[0:3] 取出list中0、1、2的对象,不包括边界值这是和索引最大的不同,切勿搞混
    推荐参考的博客 https://www.cnblogs.com/summer1019/p/10567831.html
    二维切片的可以这么理解(加上逗号就变成二维的切片操作了):[ [ 行的 : 切片 ] , [ 列的 : 切片 ] ]→ x轴方向(最基础的一个向量)是一维
    [ : , : 1 ]只要第一列 [ : , 1 ] 把第二列搞成一行的东西
    [ : , :-1]这是切片啊,只要-1列前面的,-1所在的是不要的
    假设b是三行两列的数组,b[1]表示第二行的所有元素;b[1:]表示除去第一行的元素,显示后面的所有行元素;b[:1]是除去第一列后面的所有的行;b[:,0]提取第一列的所有元素;如果是b是只有一行的话,b[1]就是第二个元素
    下面是这是来自runoob的截图

    扩展切片 切片的第三个参数,
    当第三个参数为正的时候,是正向切片,参数为负的时候,是反向切片;前面两个不存在参数,这一个就会变成步长
    拷贝忍者可以进行copy的操作,浅拷贝,会建立新的内存
    甚至还可以修改单个元素,以及增加某些元素a[3:3] = ['A','B','C'](就会在3这个位置增加)

  • OS
    for (root, dirs, files) in walk(roots)历遍输入所在的所有相对路径
    os.path.join( , )粘合路径,不需要在用什么str粘合啊这么麻烦

  • 多进程—进程是线程的容器,不存在没有线程的进程的
    在上面的代码中,我们通过Process类创建了进程对象,通过target参数我们传入一个函数来表示进程启动后要执行的代码,后面的args是一个元组,它代表了传递给函数的参数。Process对象的start方法用来启动进程,而join方法表示等待进程执行结束。运行上面的代码可以明显发现两个下载任务“同时”启动了,而且程序的执行时间将大大缩短,不再是两个任务的时间总和。下面是程序的一次执行结果。

#来自runoob的例子,把目标函数/进程作为目标
from multiprocessing import Process
from os import getpid
from random import randint
from time import time, sleep

def download_task(filename):
    time_to_download = randint(5, 10)
    sleep(time_to_download)
    print('%s下载完成! 耗费了%d秒' % (filename, time_to_download))

def main():
    start = time()
    p1 = Process(target=download_task, args=('Python从入门到住院.pdf', ))
    p1.start()
    p2 = Process(target=download_task, args=('Peking Hot.avi', ))
    p2.start()
    p1.join()  # str.join(sequence) -->sequence -- 要连接的元素序列。
    p2.join()
    end = time()
    print('总共耗费了%.2f秒.' % (end - start))

if __name__ == '__main__':
    main() 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • multiprocessing模块中的Queue类可以被多个进程共享的队列

乱七八糟的自带函数

  • if x is not Noneif not x is None 意思为判断变量是否为NONE,None,False,0,空列表[],空字典{},空元祖(),都相当于false

  • item() 把字典中每对key和value组成一个元组,并把这些元组放在列表中返回
    同时还可以将字典的 key 和 value 组成一个新的列表:for k,v in d.items(): result.append(k) result.append(v)

  • NaN(Not a Number,非数)

  • time.sleep(t) t是延迟的时间

  • tqdm 进度条模块

  • isinstance() 与 type() 区别:
    isinstance() 会认为子类是一种父类类型,考虑继承关系。
    type() 不会认为子类是一种父类类型,不考虑继承关系。
    如果要判断两个类型是否相同推荐使用 isinstance(),返回true or false。

  • parser.add_argument('-c', action='store_true', default=false)action就是true default就是false

  • lambda 简单理解就是自定义的函数 https://blog.csdn.net/zjuxsl/article/details/79437563

  • random.seed() 可以固定随机数,如果seed参数每次都一样,那么离它最近的random 函数(也就是接下来将)产生的随机数将是固定的

  • assert expression [, arguments]表达式后面接,'sentence'表示对表达式的说明,出错的话就会出现Asserterror:sentence的报错

  • strip()函数,删除字符的函数
    https://www.cnblogs.com/itdyb/p/5046472.html

  • read()、readline()和readlines()三者间的区别
    https://blog.csdn.net/qq_30868235/article/details/80580259

面向对象的编程
什么是class?就可以理解成在一个内存的区域内,这个区域内管理着很多方法,这些方法就是不同的函数。那为什么要这样写呢,是因为当你函数多了,变量也多了,为了便于管理,就把他们放到不同的区域。(_function表示只能在class中使用的函数,不加“ _ ”表示可以在class之外可以调用的函数)

super().init() — 子类构造函数调用super().init() https://blog.csdn.net/paopaohll/article/details/83063349
在这里插入图片描述

进阶篇—BUG收集

  • list存放的是str的话,不能直接放到for循环中,需要用先求出里面的元素个数,再放到range()中


所属网站分类: 技术文章 > 博客

作者:我下面给你吃

链接:https://www.pythonheidong.com/blog/article/11405/1c492d45df59cacf2a6d/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

3 0
收藏该文
已收藏

评论内容:(最多支持255个字符)