Python学习笔记三
 2019-03-06 14:49:36   270   0   

本文最后更新于天前,文中介绍内容及环境可能已不适用.请谨慎参考.

python 笔记三,时间难得
 

sys模块

 
sys.argv
sys.modules
sys.path
sys.platform
 
#str fun(): find  /join/lower/replace,split,strip,translate
 
 
#coding=utf-8


import sys

def test():
     #系统参数包括自己的名字  python.ext p4.py sdfsdf-->  ['p4.py', 'sdfsdf']
    print("- ".join(sys.argv)) # str_fun() join-- split反着来
    mds =sys.modules  #所有已加载的模块
    
    for k,v in  mds.items(): #dict.items()
        if(k.find('_')):  #str fun(): find  /join/lower/replace,split,strip,translate
            print (k,v)
        else:
            print(k)

    print(sys.path) #list
    print(sys.platform)

    pass


if(__name__=="__main__"):
    test()

 

os模块

import os

import webbrowser

def testOs():
   
    print(os.name) # nt
    #print(os.environ) #环境变量 dict
    #print(os.environ["PATH"]) #PATH变量

    #执行命令等
    #os.system("C:\\Users\\admin\Pictures\\333.png")  #访问应用
    #os.system("cmd dir .")  #访问应用
    #os.startfile("C:\\Users\\admin\Pictures\\333.png") #win特有

    #启动浏览器 更好的方式  import webbrowser
    webbrowser.open("https://256kb.cn") #系统默认浏览器


    print("c:path1"+os.sep+"path2") #路径分割 c:path1\path2
    print("5"+os.linesep+"6")   #换行分割
    print(os.urandom(4))  #指定位数的字节随机码 b'\xe7t8M'
    

 

 

fileinput模块

果然,能返回函数的语言都有点风骚。。(。・`ω´・),可以预见。

fileinput.input() 返回的是个FileInput Class类,里面实现了__getitem__遍历等等。

(・ˍ・*)我只能佩服。

 

rstrip()。右侧空格剔除。

lstrip().

 


python.exe p4.py p123.py

def testFile():
    #openhook,编码
    for line in fileinput.input(openhook=fileinput.hook_encoded('utf-8')):
        print(line.rstrip(),"#",fileinput.lineno())  #rstrip()右侧空格换行去掉  lineno行号

    print(fileinput.filename())

 

 

set

类似dict,只存key.

frozenset. / tuplu

无需应用包,语言自带。

 


def testSet():
    a=set(range(5))
    b=set([0,1,"a",(1,2,3)])
    c=a.union(b)
    dd=frozenset(b)
    a.add(dd)  #frozenset tuplu 不可变
    print(a)
      
    d1=set([1,1,1])  #set 只存储key 
    d2={"1":1,"1":2} #存储 key,val
    print(d1) #{1}
    print(d2) #{'1': 2}
    
 

heap堆

看到堆啊,栈的,就头大,还好此堆非彼堆╮( ̄▽ ̄)╭

优先队列,用于高效找到最小元素

规则,位于i位置的元素,永远比位于2*i, 2*i+1处的元素值小.(内部排序算法)

 
使用 heapq.heappop.   heappush操作 heap对象
heapify 将普通list变成 合法的heap。
nlargest取topN.
 
 
import heapq
from random import shuffle


def testheap():

    datas=list(range(10))
    hp=[]
    shuffle(datas) #随机排序
    for v in datas:
        heapq.heappush(hp,v)

    for v in range(10):
       print(heapq.heappop(hp))
       print(hp)

    print(hp) 

    hp2=list(range(5))  #普通dict
    heapq.heapify(hp2) #内部算法排序,变成合法的堆
    heapq.heappush(hp2,8)
    heapq.heappush(hp2,18)

    print(hp2)
    print(heapq.nlargest(2,hp2))
    print(heapq.nsmallest(2,hp2))
   

    

输出,每heappop出一个数,可以看到内部heap都会重新处理,但是pop出的必定为最小值。

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

 

 
 
 
 

 2019-03-06 17:05:34 
 0

  本文基于CC BY-NC-ND 4.0 许可协议发布,作者:野生的喵喵 固定链接: 【Python学习笔记三】 转载请注明



发表新的评论
{{s_uid}}   , 欢迎回来.
您的称呼(*必填):
您的邮箱地址(*必填,您的邮箱地址不会公开,仅作为有回复后的消息通知手段):
您的站点地址(选填):
留言:

∑( ° △ °|||)︴

(๑•̀ㅂ•́)و✧
<( ̄) ̄)>
[]~( ̄▽ ̄)~*
( ̄ˇ ̄)
[]~( ̄▽ ̄)~*
( ̄ˇ ̄)
╮( ̄▽ ̄)╭
( ̄ε(# ̄)
(⊙ˍ⊙)
( ̄▽ ̄)~*
∑( ° △ °|||)︴

文章分类

可能喜欢 

KxのBook@Copyright 2017- All Rights Reserved
Designed and themed by 野生的喵喵   1622795   44948