Python教程-Python中的基本命令 | 魔术命令

当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
输出:
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>
使用环境变量
- %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笔记本的重要魔术命令。这些命令使工作更加轻松,还提供了有效使用笔记本的灵活性。