python中macro(python裡面)

本文目錄一覽:

VBA和Python難度對比有哪些?

VBA和Python難度對比有:把使用目的和場景從完成一些「小任務」上升到做一個完整的、可重複使用、考慮用戶體驗的project,則VBA的難度會上身。

VBA主要基於和嵌入在以MS Office為核心的使用環境,Python的使用和應用範圍則更廣,可以處理和VBA一樣的數據分析,數據可視化,也可以進行編程開發等。

如果是在MS Office的環境下,例如MS Excel, Word,那麼主要目的大概率上是為了提高日常處理數據的效率以及提高自動化程度。那麼,我覺得Python會比較難學。

根據我自己在工作中的經驗,VBA使用頻率最高的「知識」不外乎Loop, IF statement,以及一些編程的基本原理和常識,例如declare variables, data type等。仔細學一下這些基本概念,上手VBA還是比較容易的。而且,別忘了VBA還有一個神助手,Macro (宏),它可以自動生成VBA code,可以直接複製過來用,也可以根據需自己的要進行修改。

學習方法:

1. 明確目標

對於零基礎的學員而言,要明確你學習Python僅僅是為了滿足好奇心?還是有工作需要,比如辦公自動化的需要,轉行的需要。不同的目標,所選用的學習內容和相應的學習方法也就會有所不同。

2. 選擇內容

對於零基礎學員,如要要達到使用Python的需要,那都是需要從Python基礎知識進行系統學習的。

下面是參考的《零基礎學Python》教材,為便於沒有變成基礎的同學學習,整理了下python基本知識點及對小白學員友好的學習順序。

關於Python中的一段為Python腳本添加行號腳本

C語言有__LINE__來表示源代碼的當前行號,經常在記錄日誌時使用。Python如何獲取源代碼的當前行號?

The C Language has the __LINE__ macro, which is wildly used in logging, presenting the current line of the source file. And how to get the current line of a Python source file?

exception輸出的函數調用棧就是個典型的應用:

A typical example is the output of function call stack when an exception:

python代碼

File “D:\workspace\Python\src\lang\lineno.py”, line 19, in module

afunc()

File “D:\workspace\Python\src\lang\lineno.py”, line 15, in afunc

errmsg = 1/0

ZeroDivisionError: integer division or modulo by zero

那麼我們就從錯誤棧的輸出入手,traceback模塊中:

Now that, Let’s begin with the output of an exception call stack, in the traceback module:

python代碼

def print_stack(f=None, limit=None, file=None):

“””Print a stack trace from its invocation point.

The optional ‘f’ argument can be used to specify an alternate

stack frame at which to start. The optional ‘limit’ and ‘file’

arguments have the same meaning as for print_exception().

“””

if f is None:

try:

raise ZeroDivisionError

except ZeroDivisionError:

f = sys.exc_info()[2].tb_frame.f_back

print_list(extract_stack(f, limit), file)

def print_list(extracted_list, file=None):

“””Print the list of tuples as returned by extract_tb() or

extract_stack() as a formatted stack trace to the given file.”””

if file is None:

file = sys.stderr

for filename, lineno, name, line in extracted_list:

_print(file,

‘ File “%s”, line %d, in %s’ % (filename,lineno,name))

if line:

_print(file, ‘ %s’ % line.strip())

traceback模塊構造一個ZeroDivisionError,並通過sys模塊的exc_info()來獲取運行時上下文。我們看到,所有的秘密都在tb_frame中,這是函數調用棧中的一個幀。

traceback constructs an ZeroDivisionError, and then call the exc_info() of the sys module to get runtime context. There, all the secrets hide in the tb_frame, this is a frame of the function call stack.

對,就是這麼簡單!只要我們能找到調用棧frame對象即可獲取到行號!因此,我們可以用同樣的方法來達到目的,我們自定義一個lineno函數:

Yes, It’s so easy! If only a frame object we get, we can get the line number! So we can have a similar implemetation to get what we want, defining a function named lineno:

python代碼

import sys

def lineno():

frame = None

try:

raise ZeroDivisionError

except ZeroDivisionError:

frame = sys.exc_info()[2].tb_frame.f_back

return frame.f_lineno

def afunc():

# if error

print “I have a problem! And here is at Line: %s”%lineno()

是否有更方便的方法獲取到frame對象?當然有!

Is there any other way, perhaps more convinient, to get a frame object? Of course YES!

python代碼

def afunc():

# if error

print “I have a proble! And here is at Line: %s”%sys._getframe().f_lineno

類似地,通過frame對象,我們還可以獲取到當前文件、當前函數等信息,就像C語音的__FILE__與__FUNCTION__一樣。其實現方式,留給你們自己去發現。

Thanks to the frame object, similarly, we can also get current file and current function name, just like the __FILE__ and __FUNCTION__ macros in C. Debug the frame object, you will get the solutions.

Pycharm中如何使用宏快速編寫代碼

Pycharm中的宏功能可以幫助我們快速的插入常用的代碼,那麼如何使用宏功能呢?下面我給大家分享一下。

工具/材料

Pycharm

首先打開Pycharm軟體,新建一個python文件,如下圖所示

接下來點擊頂部的Edit菜單,在下拉菜單中選擇Macros下面的Start Macro Recording選項,如下圖所示

然後我們開始在python文件中寫入一些常用的代碼,我這裡簡單的寫了個輸出語句,大家可以根據自己的需求編寫,如下圖所示

編寫完內容以後,繼續點擊頂部的Edit菜單,這次選擇Macros下面的Stop Macro Recording選項,如下圖所示

接下來會彈出一個給宏命名的界面,我們給剛才錄製的宏起一個名字點擊OK按鈕即可,如下圖所示

然後我們點擊頂部的File菜單,接著選擇下拉菜單中的Settings選項,如下圖所示

在彈出的Settings界面中定位到Keymap選項, 然後右鍵選擇剛才創建的宏,點擊Add Keyboard Shortcut選項,如下圖所示

接著我們給宏添加調用的快捷鍵,如下圖所示,直接按向添加的鍵即可

最後我們在python文件中就可以輸入定義的快捷鍵調用宏來快速的編寫代碼了,如下圖所示

這個python程序的入口在哪?

可以自己定義入口(main)

在代碼最後面加上

if __name__==’__main__’:

    M = Macro()    #實例化類文件

    M.ExecuteBlock()  #調用類文件的方法

這個實際上類似於C 或者 java 的main()

假設這個文件叫做mac.py

命令行里執行

python mac.py  

#就會執行if __name__==’__main__’: 下面的代碼

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/219817.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-09 11:01
下一篇 2024-12-09 11:01

相關推薦

  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • 蝴蝶優化演算法Python版

    蝴蝶優化演算法是一種基於仿生學的優化演算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化演算法Python版…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29

發表回復

登錄後才能評論