天天看點

python基礎--python的第三方子產品一、子產品導入

子產品

什麼是子產品

什麼是子產品(python–核心概念)

1.每一個以擴充名.py結尾的python源代碼都是一個子產品

2.子產品就好比是工具包,要想使用這個工具包中的工具,就先導入這個子產品

3.在子產品中定義的全局變量,函數,類 都是提供給外界直接使用的工具

4.變量名/函數名/類名/方法名(标示符) 需要符合标示符号的命名規格

子產品導入的兩種方式

import time
time.sleep()
time.time()
time.ctime()

import math
math.pi
math.pow(2,3)
           

官方第三方子產品

第三方庫–>子產品(從網上下載下傳)

import os

import random
import string
random.random()
random.randint(1,4)
random.choice('hello')
random.sample(string.ascii_letters + string.digits,4)

random.shuffle(list(range(1,10)))

import functools
functools.reduce(lambda  x,y:x+y,range(10))
           

python API

itchat子產品導入,給手機助手發消息和統計微信好友的男女比列

import itchat
#hotReload=True,會保留登陸狀态,在短時間内重新登陸不用
#再次掃描二維碼
itchat.auto_login()
1.給手機助手發送消息
while True:
    #itchat.send('hello',toUserName='filehelper')
     itchat.send_file('/etc/passwd',toUserName='filehelper')

#2.統計你的好友的男女比例
friends = itchat.get_friends()
#print(friends)

info={}
for friend in friends[1:]:
    if friend['Sex'] == 1:
       info['male'] = info.get('male',0) + 1
    elif friend['Sex'] == 2:
        info['female'] = info.get('female',0) + 1
    else:
        info['other'] = info.get('other',0) + 1
print(info)
           

利用圖靈機器人時刻監控微信好友的消息并給予回複

import itchat
import requests

def get_tuling_reponse(_info):
    #print(_info)
    api_url = 'http://www.tuling123.com/openapi/api'
    data ={
        'key':'d6cdfe1757a044d7b6370927acebc297',
        'info':_info,
        'userid':'haha'
    }

    # 發送資料到指定網址,擷取網址傳回的資料
    res = requests.post(api_url,data).json()
    #print(res,type(res))
    # 給使用者傳回的内容
    print(res['text'])
    return res['text']

#get_tuling_reponse('給我講個笑話~')
#get_tuling_reponse('給我講個故事')
#get_tuling_reponse('cat')


#時刻監控好友發送的文本消息,并且給予一個回複
#isGroupChat=True 接收群聊消息
#注冊響應事件,消息類型為itchat.content.TEXT,即文本消息
@itchat.msg_register(itchat.content.TEXT,isFriendChat=True)
def text_reply(msg):
    # 擷取好友發送的文本消息
    # 傳回同樣的文本消息
    content = msg['Content']
    # 将好友的消息發送給機器人去處理,處理的結果就是傳回給好友的消息
    returnContent = get_tuling_reponse(content)
    return returnContent

itchat.auto_login()
itchat.run()
           

通過手機助手發送shell指令,執行後傳回參數

import os
import itchat
#在python中執行shell指令
#1.第一種方式:可以判斷指令是否執行成功;
#傳回值為0,執行成功
#傳回值不為0.執行是失敗
#os.system('ls')
#res = os.system('hostnamess')
#print(res)

#2.第二種方式 用來儲存指令的執行結果的
#res = os.popen('hostname').read()
#print(res)


@itchat.msg_register(itchat.content.TEXT,isFriendChat=True)
def text_reply(msg):
    """
    需求:當我們的檔案助手發送消息的時候,執發送的内容
        1.如果執行成功,顯示執行結果
        2.如果執行失敗,顯示執行失敗
    :param msg:
    :return:
    """
    if msg['ToUserName'] == 'filehelper':
        # 擷取要執行的指令的内容
        command = msg['Content']
        # 讓電腦執行指令代碼
        # 如果執行成功,傳回值是0
        if os.system(command) == 0:
            res = os.popen(command).read()
            result = '[傳回值]-指令執行成功,執行結果:\n' + res
            itchat.send(result,'filehelper')
        # 如果指令執行失敗
        else:
            result = '[傳回值]-指令%s執行失敗,請重試' %(command)
            itchat.send(result,'filehelper')

itchat.auto_login()
itchat.run()
           

給指定好友發送消息

import itchat
#給指定好友發送消息

itchat.auto_login(hotReload=True)
#根據好友昵稱查找好友的資訊,傳回值是一個清單,有多個元素
res = itchat.search_friends('劉玉')
#print(res)
#通過索引擷取該好友的詳細資訊
ly = res[0]['UserName']
while True:
    itchat.send('python',toUserName=ly)
           

python還有很多好玩的子產品 讀者可以自己查找資料進行試驗

子產品和包的總結

一、子產品導入

1. 定義

Python 子產品(Module),是一個 Python 檔案,以 .py 結尾,包含了 Python 對象定義和Python語句。

子產品讓你能夠有邏輯地組織你的 Python 代碼段。

把相關的代碼配置設定到一個子產品裡能讓你的代碼更好用,更易懂。

子產品能定義函數,類和變量,子產品裡也能包含可執行的代碼。

包括:内置子產品,自定義子產品,第三方子產品;

2. 作用

  • 最大的好處是大大提高了代碼的可維護性。其次,編寫代碼不必從零開始。

    當一個子產品編寫完畢,就可以被其他地方引用。我們在編寫程式的時候,也經常引用其他子產品,

    包括Python内置的子產品和來自第三方的子產品。

  • 使用子產品還可以避免函數名和變量名沖突。

    相同名字的函數和變量完全可以分别存在不同的子產品中,

    是以,我們自己在編寫子產品時,不必考慮名字會與其他子產品沖突。

    但是也要注意,盡量不要與内置函數名字沖突。

3. 子產品導入

import

import導入子產品執行的操作:

  • 産生一個新的名稱空間;
  • 在建立的名稱空間倆面執行子產品(.py)的内容
  • 拿到了一個子產品名, 執行子產品檔案産生的名稱空間.

###import … as …

對于導入的子產品重命名

###from … import …

from … import … as …

從子產品裡面導入函數, 變量, 裝飾器等…

##4. 解決問題

問題: 導入子產品時, 子產品裡面執行代碼結果也會顯示

解決方法:

name, 所在檔案沒有當作子產品導入是, 結果為__main__;

name, 所在檔案被當作子產品導入是, 結果為子產品的名稱;

#判斷子產品是否被導入, 如果沒有被導入, 則執行下面的代碼.

if name == “main”:

print(“這是寫好的子產品裡面的顯示…”)

print(timeit(hello))

print(name)

##5. __all__決定用來控制from xxx import *導入的内容

##6. 子產品的分類

  • 内置子產品(random, string…)
  • 自定義子產品(自己寫的子產品)
  • 第三方子產品(别人寫好的子產品)

##7. 如何安裝第三方子產品

  • pip3 install 子產品名