当Python在1991年首次引入时,普遍认为Python是一种“自负风险”的语言。但情况已经改变;Python现在是一种主导性语言,被用于数据科学、机器学习和软件开发。

众所周知,Python是一种灵活的语言。因此,我们可以添加新的功能和函数,如魔术命令。

本教程将讨论魔术命令。这些魔术命令肯定有助于减少许多麻烦。

介绍

魔术命令是一种易于设计的语法,可以帮助我们执行常规任务。它们基本上是为了在使用Python进行数据分析时完成一些常见任务而创建的。实际上,它们控制了IPython本身的性质。它用于运行外部脚本或计算代码片段的执行时间。

我们可以在IPython中使用两种不同形式的魔术命令。

  • 行魔术 - 行魔术命令使用%前缀表示,并在特定输入行上运行。它以表达式的形式使用,并且它们的返回值可以分配给变量。
  • 单元格魔术 - 单元格魔术命令使用%%前缀表示,并在一个完整的单元格或多行输入上工作。它们将整个块作为字符串接收。

让我们了解一下最受欢迎和有趣的命令。

内置魔术命令

1. %autocall [mode]

%autocall[mode]魔术函数用于使函数自动可调用,无需使用括号。

2. %automagic

如果我们将其设置为1,魔术函数也可以在不使用初始%的情况下可调用。我们需要将其设置为0以停用它。

输出:

Automagic is OFF, % prefix IS needed for line magics. 

3. %run

假设我们有一个名为program_test.py的文件,其中包含以下代码。

def name()  
    print("Hello I am Stuart?)  
name()

我们使用以下语句运行。

%run program_test.py

脚本将在不导入已定义变量的情况下运行。

上述命令的行为与python program_script.py文件相同。

注意 - 我们可以使用%run -i来访问已定义的变量。

现在我们可以在IPython shell中访问执行文件的所有变量。

4. %cd

此魔术命令更改当前目录。它会自动管理IPython会话期间访问的目录的内部列表。

输出:

C:\Users\DEVANSH SHARMA 

用法 -

  • %cd <dir> - 将当前工作目录更改为<dir>
  • %cd.. - 将当前目录更改为父目录。
  • %cd - 更改为最后访问的目录。

5. %dhist

这是一个非常有用的魔术命令;它打印出我们在当前会话中访问的所有目录。每次执行%cd命令时,这将更新在_dh变量中。

输出:

Directory history (kept in _dh)  
0: C:\Users\DEVANSH SHARMA

6. %edit

编辑魔术命令解锁了当前操作系统的默认文本编辑器(对于Windows来说是Notepad),以编辑Python脚本。我们可以在编辑器中编辑当前的Python脚本。

输出:

IPython will make a temporary file named: C:\Users\DEVANS~1\AppData\Local\Temp\ipython_edit_z41uo6o8\ipython_edit_zwb99en9.py  

7. %env[GUINAME]

此魔术命令用于启用和禁用IPython GUI事件循环集成。当我们使用GUINAME参数时,此命令会将默认的GUI工具包替换为指定的工具包。

8. %%timeit

上述命令计算IPython环境执行Python程序所需的时间。让我们了解以下程序。

%%timeit  
square_numbers = [num**2 for num in range(1,1000)]

输出:

659 µs ± 19.8 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

9. %lsmagic

此命令将返回所有魔术命令的列表。让我们看看以下示例。

%lsmagic  

输出:

185-1.png

10. %who

上述命令将返回当前笔记本中定义的所有变量的列表。

输出:

a    b   c   name    z  

11. %pinfo <variable_name>

它返回有关变量的详细信息。我们可以检查存储在特定变量名中的对象。让我们了解以下示例。

命令 -

%pinfo a

输出:

Type:        int
String form: 10
Docstring:  
int([x]) -> integer
int(x, base=10) -> integer

Convert a number or string to an integer, or return 0 if no arguments
are given.  If x is a number, return x.__int__().  For floating point
numbers, this truncates towards zero.

If x is not a number or if base is given, then x must be a string,
bytes, or bytearray instance representing an integer literal in the
given base.  The literal can be preceded by '+' or '-' and be surrounded
by whitespace.  The base defaults to 10.  Valid bases are 0 and 2-36.
Base 0 means to interpret the base from the string as an integer literal.
>>> int('0b100', base=0)
4

13. %matplotlib inline

它用于在Jupyter笔记本中显示matplotlib图形。然而,此命令在较旧版本的Jupyter笔记本中可用。在较新的版本中,不再使用此命令。

14. %hist

此命令返回当前笔记本的历史记录。也就是说,我们在当前笔记本中迄今为止做了什么。

输出 -

%dhist  
%edit  
%env[GUINAME]  
%automagic  
def name()  
    print('Hello I am Stuart')  
name()  
def name():  
    print('Hello I am Stuart')  
name()  
%cd  
%%timeit  
square_number = []  
for num in range(1,100):  
    sqaure_number.append(num**2)  
%%timeit  
square_numbers = []  
for num in range(1,100):  
    sqaure_numbers.append(num**2)  
%%timeit  
square_numbers = [num**2 for num in range(1,1000)]  
%%html  
<html>  
<body>  
<h3>Student Marks</h3>  
<table>  
        <tr>   
            <th>Name</th>   
            <th>Roll</th>   
            <th>Age</th>  
            <th>Marks</th>  
        </tr>   
        <tr>   
..........................................  
..........................................  
..........................................  

在IPython中执行HTML脚本

我们可以使用魔术命令执行HTML和JavaScript代码。它帮助我们为我们的代码提供一些简单的UI元素。

语法 -

%%html允许我们执行HTML脚本。

%%js允许我们执行JS脚本。

让我们看看以下示例。

命令

%%html  
<html>  
<body>  
<h3>Employee Details</h3>  
<table>  
        <tr>   
            <th>Name</th>   
            <th>Designation</th>   
            <th>Age</th>  
            <th>Salary</th>  
        </tr>   
        <tr>   
            <td>Peter</td>   
            <td>HR</td>   
            <td>29</td>  
            <td>93000</td>  
        </tr>  
        <tr>   
            <td>Parker</td>   
            <td>IT</td>   
            <td>24</td>  
            <td>92000</td>  
        </tr>  
        <tr>   
            <td>Adam</td>   
            <td>IT</td>   
            <td>26</td>  
            <td>120000</td>  
        </tr>  
</table>  
</body>  
</html>  

185-2.png

使用环境变量

  • %env

此命令允许我们访问和处理系统环境变量。

输出:

{'ALLUSERSPROFILE': 'C:\\ProgramData',
 'APPDATA': 'C:\\Users\\DEVANSH SHARMA\\AppData\\Roaming',
 'C:\\PROGRAMDATA\\ANACONDA3\\SCRIPTS\\': 'C:\\ProgramData\\Anaconda3',
 'C:\\USERS\\DEVANSH SHARMA\\APPDATA\\ROAMING\\NPM': 'C:\\Users\\DEVANSH SHARMA\\AppData\\Roaming\\npm',
 'COMMONPROGRAMFILES': 'C:\\Program Files\\Common Files',
 'COMMONPROGRAMFILES(X86)': 'C:\\Program Files (x86)\\Common Files',
 'COMMONPROGRAMW6432': 'C:\\Program Files\\Common Files',
 'COMPUTERNAME': 'DESKTOP-2VAN176',
 'COMSPEC': 'C:\\WINDOWS\\system32\\cmd.exe',
 'DART_SDK': 'C:\\Program Files\\Dart\\dart-sdk',
 'DRIVERDATA': 'C:\\Windows\\System32\\Drivers\\DriverData',
 'FPS_BROWSER_APP_PROFILE_STRING': 'Internet Explorer',
 'FPS_BROWSER_USER_PROFILE_STRING': 'Default',
 'HOMEDRIVE': 'C:',
 'HOMEPATH': '\\Users\\DEVANSH SHARMA',
 'LOCALAPPDATA': 'C:\\Users\\DEVANSH SHARMA\\AppData\\Local',
 'LOGONSERVER': '\\\\DESKTOP-2VAN176',
 'NUMBER_OF_PROCESSORS': '4',
 'ONEDRIVE': 'C:\\Users\\DEVANSH SHARMA\\OneDrive',
 'OS': 'Windows_NT',
 'PATH': 'C:\\Users\\DEVANSH SHARMA\\Anaconda3;C:\\Users\\DEVANSH SHARMA\\Anaconda3\\Library\\mingw-w64\\bin;C:\\Users\\DEVANSH SHARMA\\Anaconda3\\Library\\usr\\bin;C:\\Users\\DEVANSH SHARMA\\Anaconda3\\Library\\bin;C:\\Users\\DEVANSH SHARMA..............
  • %env var - 它返回特定变量的值。例如 - %env OS

输出:

'Windows_NT'  
  • %env var value - 用于设置变量var的值。

结论

在本教程中,我们已经介绍了Jupyter笔记本的重要魔术命令。这些命令使工作更加轻松,还提供了有效使用笔记本的灵活性。

标签: Tkinter教程, Tkinter安装, Tkinter库, Tkinter入门, Tkinter学习, Tkinter入门教程, Tkinter, Tkinter进阶, Tkinter指南, Tkinter学习指南, Tkinter进阶教程, Tkinter编程