当 Python 在 1991 年被引入时,人们普遍认为 Python 是“使用自担风险”的语言。但是情况变了;Python 是目前占主导地位的语言,它用于数据科学、机器学习和软件开发。
我们知道 Python 是一种灵活的语言。所以我们可以增加新的功能,比如魔法命令。
本教程将讨论魔法命令。这些神奇的命令肯定有助于减少头痛。
介绍
魔法命令是易于设计的语法,便于我们执行日常任务。这些基本上是为了使用 Python 完成数据分析中的一些常见任务而创建的。事实上,它们控制着 IPython 本身的性质。它用于运行外部脚本或计算一段代码的执行时间。
我们可以在 IPython 中使用这两种不同形式的魔法命令。
- Line Magic-Line Magic 命令表示使用%前缀,并对特定的输入行进行操作。它以表达式的形式使用,它们的返回值可以赋给变量。
- Cell Magic-Cell Magic 命令使用%% prefix 表示,适用于一个完整的单元格或多行输入。他们接收整个区块作为字符串。
让我们了解一下最流行和最有趣的命令。
内置魔法命令
1.% auto all[模式]
%autocall[mode] 魔法函数用于使函数自动可调用,而无需使用括号。
2.%automagic
如果我们设置为 1,这个神奇的函数也可以被调用,而不需要初始化% 1。我们需要设置为 0 来停用它。
输出:
Automagic is OFF, % prefix IS needed for line magics.
3.%运行
假设我们有一个名为 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
-将当前工作目录更改为%cd..-它将当前目录更改为父目录。
%cd -它更改为上次访问的目录。
5.% d 列表
这是一个非常有用的魔法命令;它会打印我们在当前会话中访问过的所有目录。每次执行%cd 命令,都会在 _dh 变量中更新。
输出:
Directory history (kept in _dh)
0: C:\Users\DEVANSH SHARMA
6.%编辑
编辑魔法命令解锁当前操作系统的默认文本编辑器(窗口记事本),用于编辑 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[guin name]
这个神奇的命令用于启用和禁用 IPython GUI 事件循环集成。当我们使用 GUINAME 参数时,这个命令将默认的图形用户界面工具包替换为指定的工具包。
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
输出:
10.%谁
上述命令将返回当前笔记本中定义的所有变量的列表。
输出:
a b c name z
11.%pinfo
它返回关于变量的详细信息。我们可以检查存储在特定变量名中的对象。让我们理解下面的例子。
命令-
%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 代码。它帮助我们为代码提供一些简单的用户界面元素。
语法-
%%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>
使用环境变量
- %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 值- 用于设置变量 var 的值。
结论
在本教程中,我们已经介绍了 Jupyter 笔记本的重要魔法命令。这些命令使工作更容易,也提供了有效使用笔记本电脑的灵活性。