Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
ython的IDE(Integrated Development Environment 集成開發環境)非常多,如:VS Code、Sublime、NotePad、Python自帶編輯器IDLE、JuPyter、Eclipse + PyDev等等,但是對于項目開發、管理、部署等稍微大一點的項目,我覺得還是PyCharm最好用!
2019年12月2日,PyCharm迎來了2019.3版本,這也許會是2019年的最后一個大版本,那這個版本增加了哪些新功能呢?我們一起來看看吧!
一、Jupyter
PyCharm 在 2019年里連續發布了2019.1、2019.2、 2019.3三個大版本,對Jupyter進行改進,這讓很多使用者感到欣慰,畢竟目前數據分析比較火,使用Jupyter Notebooks的開發者也越來越多。
注意此功能僅專業版才有!
1.交互式控件
為了提供更多的交互性,Jupyter notebooks支持稱為“交互式控件”的功能。這些控件支持將靜態筆記本轉變為交互式的面板,從而使其他用戶在查看你的筆記本時,可以自定義視圖。
在此次更新中,PyCharm添加了對交互式控件的支持。這意味著窗口小部件將隨著輸出一起呈現,并且可以像處理本機Jupyter notebooks一樣用于操作筆記。
2.運行時代碼補全
PyCharm 的優勢之一是借助先進的靜態代碼分析算法,可以實現智能編碼提示。但是,對于動態語言(例如Python)而言,靜態代碼分析還不足夠。這就是為什么在此次更新中,我們利用Jupyter本身提供的運行時信息來對其進行擴展。在某些情況下,例如在字典索引或深層嵌套的表達式中,IDE無法使用靜態分析來找出其類型,而此次更新將會使代碼補全變得更為智能。
3.在輸出面板上放大和縮小
此次更新支持將預覽的字體大小設置為與編輯器一致,或者在設置中進行自定義。編輯器提供了“使用Ctrl +鼠標滾輪更改字體大小(縮放)“選項。啟用該選項后,你可以在按住Ctrl的同時,使用鼠標滾輪來放大或縮小預覽。
二、Python
1.文件路徑聯想
害怕在寫文件名時打錯字?特別是有較長文件名時,例如open('data/ survey_data_28112019_exported.csv') ?現在,你可以在Python代碼編輯器或控制臺中獲得文件路徑建議。我們擴展了上下文感知的代碼補全功能,因此上下文中與文件相關的字符串字面量可以為可能的文件路徑提供建議。
2.支持相對import
與絕對import相比,你更喜歡相對import嗎?PyCharm現在支持在這些風格之間自動地轉換。如果你已經使用相對導入方式導入了某個程序包,那么所有新的從該程序包的導入也將自動創建為相對導入。
3.Python 3.8:TypedDicts
PyCharm 通過對TypedDict的支持,避免字典的錯誤賦值。為你的鍵值對結構提供更精確的展示,我們的代碼編輯器能幫助你找到恰當的使用方法。
4.Python 3.8:字面量類型注解
你是否有采用特定字符串字面量的方法,例如帶文件模式“open”方法?你可以使用Python 3.8的Literal類型注解來檢查類型,還可以檢查特定的值。現在,當你調用的函數出現不支持的值時,PyCharm會出現告警。
5.自動創建pytest測試
我們升級了用于自動創建測試的工具,現在也支持pytest。有了這個,PyCharm允許你通過在方法聲明的菜單中,僅僅單擊“Go To | Test”選項,就自動創建pytest測試。
6.調試器:集合的大小信息
調試時的跟蹤信息應盡可能清晰與詳細。這就是我們調整變量視圖的原因,現在它可以顯示組織得更好且更全面的數據。有了這個,就可以期待新的排序、科學數組的更好的視覺表示、集合長度的顯示以及重復細節的去除。
三、性能提升
1.更快的索引
PyCharm 先進的代碼內視可以幫助你更快地完成工作。為此,我們需要索引你的代碼和所有導入的包。當你使用已編譯擴展的軟件包時(如許多數據科學軟件包),在對其進行索引之前,我們需要生成描述Python接口的Python骨架(存根文件)。我們對此過程進行了改進,預計整個索引過程至少快25%。當然,如果你在多個virtualenv中使用同一程序包,我們將重用已經創建的索引。
2.凍結次數減少,并改進了凍結報告
不幸的是,有時候PyCharm的UI會凍結一段時間,然后才讓你重新開始處理代碼。我們意識到這是非常令人不快的事情,因此我們正在努力消除這些問題。我們已經修復了許多可能導致UI凍結的問題,現在,你可以直接從IDE中上報UI凍結,這使我們有可能調查其凍結的原因,并確保它不再發生。提前感謝你幫助我們擺脫PyCharm中的UI凍結問題!
3.更多的改進
a.今年,我們在所有JetBrains IDE的啟動性能方面進行了大量工作。我們的核心平臺的啟動時間在2019.3版本中得到了進一步改善,我們將繼續努力使IDE更快地啟動。
b.現在可以在不重啟IDE的情況下更改主題。在選擇預先安裝的主題時或下載新主題后,都可以進行此操作。
c.在PyCharm 2019.3中,各種對于處理事件和忽略文件的改進,使版本控制的狀態更新得更快。
d.我們對編輯器的呈現方式進行了一些更改,現在滾動瀏覽一個長文件變得更加平滑。
四、數據庫支持
注意此功能僅專業版才有!
支持MongoDB
你要在MongoDB上構建應用程序嗎?那么你將很高興地得知現在可以在PyCharm中查看MongoDB集合。通過從數據庫工具窗口(視圖|工具窗口|數據庫)添加數據源來連接數據庫。PyCharm Professional Edition附帶了 JetBrains DataGrip(JetBrains制造的專業SQL IDE)的所有數據庫功能。
五、IDE功能
1.參數化運行配置
在創建命令行應用程序時,通常可以方便地快速更改參數。盡管你可以進入“編輯配置”來進行更改,但是現在有一種更好的方法:使用新的運行配置宏(變量),每次啟動應用程序時,PyCharm都會提示你輸入值。
2.在選定內容中搜索
是否想知道在文件的某部分中,某些文本出現的頻率?現在,在你選定的內容中,find動作將自動查找。想要到處搜索?再次按Ctrl-F(在macOS上為Cmd-F),會將搜索范圍擴展到文件的其余部分。
3.更多的改進
如果應用程序的一部分是用JavaScript編寫的,則很可能你在某處使用了Handlebars模板。如果安裝了 Handlebars插件,則現在可以在任何Python字符串中啟用Handlebars代碼智能。只需在字符串中按Alt-Enter,選擇“插入語言或參考”,然后鍵入“Handlebars”。
六、版本控制
1.與當前分支的改進比較
你擁有的分支越多,就越難追蹤它們之間的差異。在新版本的PyCharm中,分支比較功能看起來更好,并且可以使你快速了解哪些提交使兩個分支之間產生了差異。
2.改進了克隆代碼倉的UI
無論你使用哪種代碼倉,當你要拉取新項目時,我們現在都在同一個地方開始。
3.更多的改進
七、Web開發
注意此功能僅專業版才有!
1.CDN中的CSS類
你是否要使用CDN中的樣式表?現在,我們可以下載該樣式表的一個版本,專門用于代碼補全。
2.查看調試JavaScript時方法返回的值
就像在Python調試器中一樣,JavaScript調試器現在可以向你顯示你正在調用的方法的返回值。要查看返回值,請單擊調試器上的齒輪圖標,然后啟用“顯示返回值”。
3.更多的改進
源 | PyCharm官網 整理 | 豬哥 校正 | 豌豆花下貓
Python的IDE(Integrated Development Environment 集成開發環境)非常多,如:VS Code、Sublime、NotePad、Python自帶編輯器IDLE、JuPyter、Eclipse + PyDev等等,但是對于項目開發、管理、部署等稍微大一點的項目,豬哥覺得還是PyCharm最好用!
2019年12月2日,PyCharm迎來了2019.3版本,這也許會是2019年的最后一個大版本,那這個版本增加了哪些新功能呢?我們一起來看看吧!
PyCharm 在 2019年里連續發布了 2019.1
、2019.2
、2019.3
三個大版本,對Jupyter進行改進,這讓很多使用者感到欣慰,畢竟目前數據分析比較火,使用Jupyter Notebooks的開發者也越來越多。
注意此功能僅專業版才有!
為了提供更多的交互性,Jupyter notebooks支持稱為“交互式控件”的功能。這些控件支持將靜態筆記本轉變為交互式的面板,從而使其他用戶在查看你的筆記本時,可以自定義視圖。
在此次更新中,PyCharm添加了對交互式控件的支持。這意味著窗口小部件將隨著輸出一起呈現,并且可以像處理本機Jupyter notebooks一樣用于操作筆記。
PyCharm 的優勢之一是借助先進的靜態代碼分析算法,可以實現智能編碼提示。但是,對于動態語言(例如Python)而言,靜態代碼分析還不足夠。這就是為什么在此次更新中,我們利用Jupyter本身提供的運行時信息來對其進行擴展。在某些情況下,例如在字典索引或深層嵌套的表達式中,IDE無法使用靜態分析來找出其類型,而此次更新將會使代碼補全變得更為智能。
此次更新支持將預覽的字體大小設置為與編輯器一致,或者在設置中進行自定義。編輯器提供了“使用Ctrl +鼠標滾輪更改字體大小(縮放)“選項。啟用該選項后,你可以在按住Ctrl的同時,使用鼠標滾輪來放大或縮小預覽。
害怕在寫文件名時打錯字?特別是有較長文件名時,例如 open('data/ survey_data_28112019_exported.csv')
?現在,你可以在Python代碼編輯器或控制臺中獲得文件路徑建議。我們擴展了上下文感知的代碼補全功能,因此上下文中與文件相關的字符串字面量可以為可能的文件路徑提供建議。
與絕對import相比,你更喜歡相對import嗎?PyCharm現在支持在這些風格之間自動地轉換。如果你已經使用相對導入方式導入了某個程序包,那么所有新的從該程序包的導入也將自動創建為相對導入。
PyCharm 通過對TypedDict的支持,避免字典的錯誤賦值。為你的鍵值對結構提供更精確的展示,我們的代碼編輯器能幫助你找到恰當的使用方法。
你是否有采用特定字符串字面量的方法,例如帶文件模式“open”方法?你可以使用Python 3.8的 Literal
類型注解來檢查類型,還可以檢查特定的值。現在,當你調用的函數出現不支持的值時,PyCharm會出現告警。
我們升級了用于自動創建測試的工具,現在也支持pytest。有了這個,PyCharm允許你通過在方法聲明的菜單中,僅僅單擊“Go To | Test”選項,就自動創建pytest測試。
調試時的跟蹤信息應盡可能清晰與詳細。這就是我們調整變量視圖的原因,現在它可以顯示組織得更好且更全面的數據。有了這個,就可以期待新的排序、科學數組的更好的視覺表示、集合長度的顯示以及重復細節的去除。
PyCharm 先進的代碼內視可以幫助你更快地完成工作。為此,我們需要索引你的代碼和所有導入的包。當你使用已編譯擴展的軟件包時(如許多數據科學軟件包),在對其進行索引之前,我們需要生成描述Python接口的Python骨架(存根文件)。我們對此過程進行了改進,預計整個索引過程至少快25%。當然,如果你在多個virtualenv中使用同一程序包,我們將重用已經創建的索引。
不幸的是,有時候PyCharm的UI會凍結一段時間,然后才讓你重新開始處理代碼。我們意識到這是非常令人不快的事情,因此我們正在努力消除這些問題。我們已經修復了許多可能導致UI凍結的問題,現在,你可以直接從IDE中上報UI凍結,這使我們有可能調查其凍結的原因,并確保它不再發生。提前感謝你幫助我們擺脫PyCharm中的UI凍結問題!
今年,我們在所有JetBrains IDE的啟動性能方面進行了大量工作。
我們的核心平臺的啟動時間在2019.3版本中得到了進一步改善,我們將繼續努力使IDE更快地啟動。
現在可以在不重啟IDE的情況下更改主題。在選擇預先安裝的主題時或下載新主題后,都可以進行此操作。
在PyCharm 2019.3中,各種對于處理事件和忽略文件的改進,使版本控制的狀態更新得更快。
我們對編輯器的呈現方式進行了一些更改,現在滾動瀏覽一個長文件變得更加平滑。
注意此功能僅專業版才有!
你要在MongoDB上構建應用程序嗎?那么你將很高興地得知現在可以在PyCharm中查看MongoDB集合。通過從數據庫工具窗口(視圖|工具窗口|數據庫)添加數據源來連接數據庫。PyCharm Professional Edition附帶了 JetBrains DataGrip(JetBrains制造的專業SQL IDE)的所有數據庫功能。
在創建命令行應用程序時,通常可以方便地快速更改參數。盡管你可以進入“編輯配置”來進行更改,但是現在有一種更好的方法:使用新的運行配置宏(變量),每次啟動應用程序時,PyCharm都會提示你輸入值。
是否想知道在文件的某部分中,某些文本出現的頻率?現在,在你選定的內容中,find動作將自動查找。想要到處搜索?再次按Ctrl-F(在macOS上為Cmd-F),會將搜索范圍擴展到文件的其余部分。
如果應用程序的一部分是用JavaScript編寫的,則很可能你在某處使用了Handlebars模板。如果安裝了 Handlebars插件,則現在可以在任何Python字符串中啟用Handlebars代碼智能。只需在字符串中按Alt-Enter,選擇“插入語言或參考”,然后鍵入“Handlebars”。
你擁有的分支越多,就越難追蹤它們之間的差異。在新版本的PyCharm中,分支比較功能看起來更好,并且可以使你快速了解哪些提交使兩個分支之間產生了差異。
無論你使用哪種代碼倉,當你要拉取新項目時,我們現在都在同一個地方開始。
拉取遠程分支時,通常需要創建一個跟蹤該遠程分支的本地分支。
在PyCharm 2019.3中,’checkout’操作只有一個,可以確保你看到遠程分支的當前狀態,但是沒有丟失任何本地提交的風險。
PyCharm始終能夠 push 你當前已拉取的分支。
有時,你可能要推送另一個分支,從現在開始,不再需要首先將其檢出。
注意此功能僅專業版才有!
你是否要使用CDN中的樣式表?現在,我們可以下載該樣式表的一個版本,專門用于代碼補全。
就像在Python調試器中一樣,JavaScript調試器現在可以向你顯示你正在調用的方法的返回值。要查看返回值,請單擊調試器上的齒輪圖標,然后啟用“顯示返回值”。
- 無論你在CSS中使用單引號還是雙引號,PyCharm現在都可以幫助你使引號保持一致。在 Other 選項卡中的 Settings | Editor | Code Style | Style Sheets | CSS 中進行配置。
- 你是否使用未為其定義propTypes的React組件?PyCharm現在能夠推斷 props,并且將為你提供未定義propTypes的組件的代碼補全。
簽到送書計劃
自律改變自我!第①期打卡送書活動啟動!
源 | 數據分析與統計學之美
這是一個很好的Python自動化的案例。對于小公司,采用手動方式一個個發送郵件還是可以的。如果一個上百號,上千號,或者更大規模的公司,我們再一個個發送工資條郵件,就太浪費時間了。鑒于此,我寫了一個這樣的程序,實現Python自動化群發工資條的功能。
原始數據源如下:
最終效果如下:
看到這里,你肯定也覺得很好玩兒吧?那么這樣一個自動化程序,應該怎么做呢?接著往下看。
其實這樣一個代碼,總結下來,就只有如下5步:
① 導入相關模塊;
② 讀取Excel表格;
③ 登錄郵箱;
④ 準備要發送的郵件正文;
⑤ 發送郵件;
from openpyxl import load_workbook # 用于操作Excel的模塊
import yagmail # 用于存儲郵箱地址和密碼的模塊
import keyring # 用于記錄你郵箱地址和密碼的模塊
from datetime import * # 用于獲取當前系統時間的模塊
# 加載Excel文件
wb=load_workbook("群發工資條.xlsx",data_only=True)
sheet=wb.active
print(sheet)
-------------------------------------------------------
for row in sheet:
row_text=""
for cell in row:
if cell.column=="B":
continue
row_text +=f"{cell.value},"
print(row_text)
------------------------------------------------------
print("年:", date.today.year)
print("月:", date.today.month)
print(f"{date.today.year}-{date.today.month}月")
結果如下:
yagmail.register("1127421544@qq.com","flmyucvntuvbjbcb")
pwd=keyring.get_password("yagmail","1127421544@qq.com")
yag=yagmail.SMTP(user="1127421544@qq.com",host="smtp.qq.com",password=pwd)
需要注意的是:第一行代碼是用于存儲你的郵件地址和密碼。第二行代碼使用keyring是為了記錄你的郵件地址和密碼。第三行代碼直接登錄郵箱。
關于Python怎么發送郵件,我之前寫了一篇文章,進行了詳細的介紹,下方是這篇文章的鏈接,大家可以參考。
Python發郵件:http://suo.im/60ylZ1
4)準備要發送的正文
由于發送的正文里面,需要我們發送一個帶表格的郵件,這就有必要我們了解一點前端知識。因此,我在最后面花一個章節為大家講解。
yag.send(f"{email}",f"數據分析與統計學之美有限公司{date.today.year}-{date.today.month}月工資情況",contents)
上述代碼共有3個參數:第一個參數是收件人的郵箱;第二個參數是郵件的標題;第三個參數是發送的內容。
會用Python發送郵件的人都知道,郵件正文內容可以寫html代碼。你可能覺得自己啥也不會,但是不用擔心,我們不需要學習太高深的前端代碼,做過爬蟲的人耳濡目染,都能夠看懂一些。
我們可以直接用Pycharm創建一個新的html文件,里面會顯示初始的前端代碼,我們進行簡單的添加,就可以獲得一個表格啦!
最終在瀏覽器中顯示效果如下:
從上圖中根本看不出這是一個表格,那是因為我們沒有為它設置一個樣式,下面要做的就是為表格設置樣式。
最終在瀏覽器中顯示效果如下:
從上圖可以看出,整個前端代碼就是用一些列的標簽組成,同時標簽都是成對出現的。因此,在Python中寫前端代碼時,只需要在對應位置添加對應的標簽即可。
for row in sheet:
row_text="<tr>"
for cell in row:
if cell.column=="B":
continue
row_text +=f"<td>{cell.value}</td>"
row_text +="</tr>"
print("\n")
print(row_text)
結果如下:
為了文章的完整性,我在文章最后放上我的代碼。但是限于文章篇幅,最后我只粘貼一張圖片,詳細代碼,大家可以去文末獲取。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。