當前位置:首頁 » 編程語言 » pythonainb

pythonainb

發布時間: 2025-05-16 21:45:56

python用於什麼方向

Python的應用范圍廣,無論是web開發,還是數據抓取,運維測試,都可以用它來實現,下面來具體看一下:

Web應用開發

Python經常被用於Web開發。比如,通過mod_wsgi模塊,Apache可以運行用Python編寫的Web程序。Python定義了WSGI標准應用介面來協調Http伺服器與基於Python的Web程序之間的通信。一些Web框架,如Django,TurboGears,web2py,Zope等,可以讓程序員輕松地開發和管理復雜的Web程序。

操作系統管理、伺服器運維的自動化腳本

在很多操作系統里,Python是標準的系統組件。大多數Linux發行版以及NetBSD、OpenBSD和MacOSX都集成了Python,可以在終端下直接運行Python。有一些Linux發行版的安裝器使用Python語言編寫,比如Ubuntu的Ubiquity安裝器,RedHatLinux和Fedora的Anaconda安裝器。GentooLinux使用Python來編寫它的Portage包管理系統。Python標准庫包含了多個調用操作系統功能的庫。通過pywin32這個第三方軟體包,Python能夠訪問Windows的COM服務及其它WindowsAPI。使用IronPython,Python程序能夠直接調用.NetFramework。一般說來,Python編寫的系統管理腳本在可讀性、性能、代碼重用度、擴展性幾方面都優於普通的shell腳本。

python學習網,免費的python學習網站,歡迎在線學習!

桌面軟體

PyQt、PySide、wxPython、PyGTK是Python快速開發桌面應用程序的利器。

伺服器軟體(網路軟體)

Python對於各種網路協議的支持很完善,因此經常被用於編寫伺服器軟體、網路爬蟲。第三方庫Twisted支持非同步網路編程和多數標準的網路協議(包含客戶端和伺服器),並且提供了多種工具,被廣泛用於編寫高性能的伺服器軟體。

游戲

很多游戲使用C++編寫圖形顯示等高性能模塊,而使用Python或者Lua編寫游戲的邏輯、伺服器。相較於Python,Lua的功能更簡單、體積更小;而Python則支持更多的特性和數據類型。

構思實現,產品早期原型和迭代

YouTube、Google、Yahoo!、NASA都在內部大量地使用Python。

操作系統管理、自動化運維開發

很多操作系統中,Python 是標準的系統組件,大多數 Linux 發行版以及 NetBSD、OpenBSD 和 Mac OS X 都集成了 Python,可以在終端下直接運行 Python。

有一些 Linux 發行版的安裝器使用 Python 語言編寫,例如 Ubuntu 的 Ubiquity 安裝器、Red Hat Linux 和 Fedora 的 Anaconda 安裝器等等。

Ⅱ python就業方向

python就業方向:python開發工程師、人工智慧工程師、大數據分析工程師、爬蟲開發工程師、搜索引擎工程師、游戲開發工程師、系統運維工程師。

Python具除了易讀易寫更兼具面向對象和函數式風格,還有不錯元編程能力已經成為IT運維、科學計算、數據處理等領域的主要編譯語言。

通過系統化的將各種管理工具結合,對各類工具進行二次開發,形成統一的伺服器管理系統。

Ⅲ 如何使用python做android的自動化測試

開始第一個簡單的Android UI自動化測試
1.使用adb命令連接真機或模擬器
2.打開uiautomatorviewer工具
3.使用uiautomatorviewer工具獲取應用的元素進行定位
4.簡單介紹unittest框架的使用方法
5.使用Python編寫貓寧考勤應用注冊模塊的自動化測試
1.使用adb命令連接真機或模擬器:
手機USB連接電腦,進入開發者模式;
cmd命令:adb devices ,查看手機是否連接
這里寫圖片描述
顯示錯誤
這是因為adb的埠被佔用,我們需要查看是什麼應用佔用了這個埠(5037為adb默認埠)
cmd命令 : netstat -aon|findstr 「5037」
這里寫圖片描述
可以看到佔用5037埠對應的程序的PID號為8388;
cmd命令 : tasklist|findstr 「8388」
這里寫圖片描述
可以看出8388對應的程序為kadb.exe,說明該程序正在使用5037埠;
這時我們需要在任務管理器中結束kadb.exe進程,按快捷鍵「Ctrl+Shift+Esc」調出Windows任務管理器,找到「kadb.exe」,單擊下方的結束進程即可!
這里寫圖片描述
我們再次運行cmd命令:adb devices
這里寫圖片描述
這一步成功後我們才能運行sdk自帶的uiautomatorviewer;
我們需要用uiautomatorviewer工具來獲取元素,用於定位。
cmd命令:uiautomatorviewer,打開uiautomatorviewer界面
這里寫圖片描述
或者找到sdk目錄:sdk\tools中找到uiautomatorviewer.bat文件雙擊運行
這里寫圖片描述
2.打開uiautomatorviewer工具
這里寫圖片描述
我們可以根據text,resource-id,class等元素進行定位
3.使用uiautomatorviewer工具獲取應用的元素進行定位
這里我使用python自帶的IDLE進行編寫測試腳本,打開python文件找到IDLE(python GUI)雙擊打開,如圖:
這里寫圖片描述
4.簡單介紹unittest框架的使用方法
# -*- coding:utf-8 -*-
from uiautomator import device as d
import unittest
class Mytest(unittest.TestCase):
#初始化工作
def setUp(self):
print "--------------初始化工作"
#退出清理工作
def tearDown(self):
print "--------------退出清理工作"
#測試點擊貓寧考勤case
def test_login(self):
d(text="貓寧考勤").click()
print "--------------測試1"
#測試2
def test_z(self):
print "--------------測試2" #這里你可以寫你的第二個測試用例,
#測試3
def test_w(self):
print "--------------測試3" #這里你可以寫你的第三個測試用例。。。。。。。。。。。。。
if __name__ == '__main__':
unittest.main()
結果如下:
Testing started at 21:14 …
————–初始化工作
————–測試1
————–退出清理工作
————–初始化工作
————–測試3
————–退出清理工作
————–初始化工作
————–測試2
————–退出清理工作
Process finished with exit code 0
從結果中我們可以看出unittest框架的運行方式為:
setUp 測試1 tearDown
setUp 測試2 tearDown
setUp 測試3 tearDown
5.使用Python編寫貓寧考勤應用注冊模塊的自動化測試
# -*- coding:utf-8 -*-
from uiautomator import device as d
import time
import unittest
class MyTestSuite(unittest.TestCase):
# 初始化工作
def setUp(self):
print "--------------初始化工作"
# 退出清理工作
def tearDown(self):
print "--------------退出清理工作"
#***************************方法**************************************
# 判斷控制項是否存在 & text
def check_controls_exists(self, controls_text):
if d(text=controls_text).exists:
return 1
else:
return 0
# 判斷按鈕是否置灰 & text & clickable
def check_controls_click_text(self, controls_text):
if d(text=controls_text).info.get("clickable") is True:
return 1
else:
return 0
#assertIn(a, b) a in b
def check_ainb(self,resourceid,b):
if d(resourceId=resourceid).info.get("text") in b:
return 1
else:
return 0
#***********************************************************
# 注冊模塊
def test_Aregister(self):
try:
time.sleep(2)
#貓寧考勤開啟全新時代
self.assertEqual(self.check_controls_click_text("注冊"),1,u"貓寧考勤開啟全新時代")
# 貓寧考勤開啟全新時代--》點擊注冊按鈕進入注冊貓寧界面
d(text="注冊").click()
time.sleep(3)
#注冊貓寧界面
self.assertEqual(self.check_text("com.isentech.attendancet:id/regis_phone","請輸入手機號碼"),
1,u"注冊頁面-》請輸入手機號碼")
self.assertEqual(self.check_text("com.isentech.attendancet:id/regis_verifycode","請輸入驗證碼"),
1,u"注冊頁面-》請輸入驗證碼")
self.assertEqual(self.check_controls_click_text("獲取驗證碼"), 0,u"注冊頁面-》獲取驗證碼")
self.assertEqual(self.check_controls_click_text("《中科愛訊服務協議》"), 1,u"注冊頁面-》《中科愛訊服務協議》")
self.assertEqual(self.check_controls_click_text("注冊"), 0,u"注冊頁面-》注冊")
time.sleep(2)
#《中科愛訊服務協議》
d(text="《中科愛訊服務協議》").click()
time.sleep(2)
self.assertEqual(self.check_ainb("com.isentech.attendancet:id/title","服務協議"), 1,u"注冊頁面-》服務協議")
time.sleep(1)
d(resourceId="com.isentech.attendancet:id/title_back").click()
time.sleep(1)
#手機號不輸入是否能注冊
d(text="注冊").click()
time.sleep(3)
# 手機號只輸入1個數字是否能注冊&只輸入1個數字是否能獲取驗證碼
d(resourceId="com.isentech.attendancet:id/regis_phone").set_text("1")
self.assertEqual(self.check_controls_click_text("獲取驗證碼"), 0)
time.sleep(1)
d(text="注冊").click()
time.sleep(1)
d(resourceId="com.isentech.attendancet:id/regis_phone").clear_text()
time.sleep(1)
#只輸入5個數字是否能獲取驗證碼
d(resourceId="com.isentech.attendancet:id/regis_phone").set_text("11111")
self.assertEqual(self.check_controls_click_text("獲取驗證碼"), 0)
time.sleep(1)
d(resourceId="com.isentech.attendancet:id/regis_phone").clear_text()
time.sleep(1)
#只輸入手機號是否能注冊
d(resourceId="com.isentech.attendancet:id/regis_phone").set_text(phone_number)
self.assertEqual(self.check_controls_click_text("注冊"), 0)
time.sleep(1)
d(text="注冊").click()
time.sleep(1)
#輸入正確的驗證碼&獲取驗證碼是否高亮
d(resourceId="com.isentech.attendancet:id/regis_verifycode").set_text("5648")
time.sleep(1)
self.assertEqual(self.check_controls_click_text("獲取驗證碼"), 1)
time.sleep(2)
#密碼只輸入1個數字是否能注冊&注冊按鈕是否高亮
d(resourceId="com.isentech.attendancet:id/regis_pass").set_text("1")
d(resourceId="com.isentech.attendancet:id/regis_passAgain").set_text("1")
time.sleep(1)
self.assertEqual(self.check_controls_click_text("注冊"), 0,u"密碼只輸入1個數字是否能注冊")
time.sleep(1)
d(resourceId="com.isentech.attendancet:id/regis_pass").clear_text()
d(resourceId="com.isentech.attendancet:id/regis_passAgain").clear_text()
time.sleep(1)
#輸入不相同的密碼是否能注冊
d(resourceId="com.isentech.attendancet:id/regis_pass").set_text("123456")
d(resourceId="com.isentech.attendancet:id/regis_passAgain").set_text("12345")
time.sleep(1)
self.assertEqual(self.check_controls_click_text("注冊"), 0,u"輸入不相同的密碼是否能注冊")
time.sleep(1)
d(resourceId="com.isentech.attendancet:id/regis_pass").clear_text()
d(resourceId="com.isentech.attendancet:id/regis_passAgain").clear_text()
time.sleep(1)
#輸入正確的密碼是否能注冊&我已同意是否打鉤
d(resourceId="com.isentech.attendancet:id/regis_pass").set_text("123456")
d(resourceId="com.isentech.attendancet:id/regis_passAgain").set_text("123456")
time.sleep(1)
self.assertEqual(self.check_controls_click_resourceId("com.isentech.attendancet:id/regis_agree"), 1)
self.assertEqual(self.check_controls_click_text("注冊"), 1)
time.sleep(2)
d(text="注冊").click()
time.sleep(8)
except Exception, e:
print u"Error: 注冊模塊有問題\n", e
def test_app():
test_unit = unittest.TestSuite()
test_unit.addTest(MyTestSuite("test_Aregister"))
if __name__ == "__main__":
# 測試app
unittest.main()

Ⅳ 未來十年Python的前景會怎樣

用python已經不是裝逼了確實沒有錯,但現在逼界的風向是要反python嗎
我想不通的是,未來10年,如果不是python/ruby這樣的語言發展的時機,那會是什麼語言
我來說說對上述所謂問題我的看法吧:
1. 兼容性問題
2to3的問題讓社區不少人寒了心,但guido堅持要這樣做,因為他認為這是python追求簡單優雅所必須要做的。對於沒有歷史包袱的項目來說,直接選擇用python3000肯定是明智的。對於已有項目,2to3、six這樣的工具也是可以解決絕大部分問題。
大版本內的兼容性問題我還沒遇到過,不知道有啥案例讓我學習學習的。
對於活躍的開源項目,小的兼容性問題不容易成為項目發展的瓶頸。而對於不活躍或者設計較差的項目,即使是使用其它語言,時間長了,也一般不會是兼容性影響它的使用。
(我司的web後台幾年前大部分是C++寫的,理論上講不會有兼容性問題,但是現在當有需求實現時,卻沒有人想去維護那一整片一整片的業務邏輯和不同的前同事造的輪子。)
如果說,你想寫一個完美的能立即穩定下來並且再也不需要維護的軟體,那還是用C語言吧(換言之,這樣的東西python里不都是用C寫的嗎)
總的來說,我個人確實沒怎麼在python上吃過兼容性的虧,反而對C++大包大攬時留下的坑深惡痛絕
2. python的庫惡心
哪個庫?有C++的庫惡心嗎,有java的庫惡心嗎
3. python的使用場合
前面已經說過,guido是個有理想的人,他希望python在任何一個領域都能牛逼起來,所以python才會強調簡單、通用,讓你幹啥都能想到它。在實際上,python也未能做到處處通殺,甚至還沒能做到在某個領域的權威(在雲計算領域,python應該已經快了),基於語言本身的特點,目前在運維、大數據、雲計算、web、科學計算上都還混得可以

4. 找工作
積重難返,python更多的會在某種口味的創業團隊使用,國內的大公司不大會直接招python程序員,像
@白如冰
說的那樣。從社區上的招聘廣告來看,大部分的崗位需求是web後台和運維系統開發的,web後台又有大部分是要求django的。

python的水不深,單靠對語言本身的考察,難以分清水平高低,於是,要麼需要你有豐富的經驗,要麼你有堅強的毅力(比如C++學得很好)

最後,補充下,我極少在windows下用python(除了靠python在淘寶上秒殺了個手機),但每次一用就覺得別扭,也許這也是需要考慮的部分吧
5. 逼格
(1) 用什麼語言都不能證明逼格,包括匯編,也包括lisp/haskell。
(2) 在適當的場合用適當的工具,解除耦合、減少重復、易於擴展才是對逼格的更高挑戰。
比如有一組件對資料庫有大量操作,我同事認為他要用C++模板元編程加上一些巧妙的設計模式來生成sql是逼格高的體現,我認為在這樣的場景下至少要用上orm才能談得上對逼格有要求。
大膽預測,10年後,python程序員不一定會更多,但python一定會使用得更廣泛得多

熱點內容
sql數據溢出 發布:2025-05-17 04:55:14 瀏覽:731
java金額 發布:2025-05-17 04:51:48 瀏覽:288
安卓怎麼下應用 發布:2025-05-17 04:46:52 瀏覽:554
演算法健壯性 發布:2025-05-17 04:41:10 瀏覽:856
jquery文件上傳進度條 發布:2025-05-17 04:39:50 瀏覽:221
信息技術腳本模板 發布:2025-05-17 04:39:00 瀏覽:258
寫sql跑 發布:2025-05-17 04:38:58 瀏覽:252
openharmony編譯依賴 發布:2025-05-17 04:32:45 瀏覽:610
什麼叫雙十一配置 發布:2025-05-17 04:14:31 瀏覽:979
翼狀胬肉使用氟尿嘧啶怎麼配置 發布:2025-05-17 04:14:24 瀏覽:976