[玩转系统] PowerShell 与 Python:一场永恒的战争
作者:精品下载站 日期:2024-12-14 20:52:44 浏览:11 分类:玩电脑
PowerShell 与 Python:一场永恒的战争
最好的编程语言是什么?当询问十个不同的开发人员时,你可能会得到十个不同的答案。在本文中,我们将比较两种语言; PowerShell 和 Python。您将大致了解每种语言,并了解它们如何在语法、跨平台可用性等功能上进行比较和对比。
是时候来一场 PowerShell 与 Python 的较量了!
读完本文后,您将能够回答一些常见问题:
- 这两种语言有什么共同点?
- 是什么让他们与众不同?
- 它们各自的最佳用例是什么?
- 语法有何不同?
- 一个人必须扮演什么样的角色才能最好地利用其中一个角色?
本文适合那些对这两种语言知之甚少甚至一无所知,并且对是否使用 PowerShell 还是 Python 感到困惑的人。本文也适合那些已经了解其中一种语言并想了解另一种语言的人。
让我们深入了解一下!
按工作角色
尽管您可能可以整天谈论 Python 和 PowerShell 的技术方面,但比较这两种语言的一个重要部分是确定哪种工作角色最适合这两种语言。
PowerShell 和 Python 都是在栅栏的两侧(微软和开源 Linux 社区)开发的。两种语言的语法、社区以及因此的整体感觉都不同,因此通常适用于某些工作角色
这里需要注意的是,PowerShell(Core)在6.0.0及更高版本中已经开源。时代在变。
系统管理员
PowerShell 和 Python 都是系统管理员值得学习的优秀语言。它们都是很棒的自动化工具,并且可以为系统管理员节省大量时间。但可以说,对于 Windows 系统管理员来说,PowerShell 将是更好的选择,因为它与本机 .NET 框架集成。
另一方面,Python 非常适合 Linux 系统管理员。
尽管 Python 和 PowerShell(核心)都是跨平台的,但您会发现绝大多数工作角色将在 Windows 和 PowerShell、Python 和 Linux 之间划分。
开发商
对于更多面向开发人员的工作,Python 是迄今为止的领导者。 Python 在 PowerShell 从未涉足的领域拥有大量支持,例如数据科学、统计分析等。有时,Python 感觉更像是一种面向科学的语言。
Python 还运行许多大型服务器端 Web 应用程序和其他“开发人员友好”的应用程序。
尽管 PowerShell可以用作开发语言,但它通常更适合需要更多自动化的工作角色,例如 DevOps 或一般系统管理自动化。
按操作系统
电源外壳
PowerShell 是 Windows 环境的英雄;这是您在 Windows 中自动化任务时可以利用的最佳技能。对于本地和 Office 365 品种的 Active Directory 和 Microsoft Exchange 等产品尤其如此。
由于 PowerShell 可以直接访问 .NET Framework,因此它与所有 Windows 系统完美集成,并且可以轻松用于完成任何任务。
然而,PowerShell 确实支持 Linux,但截至撰写本文时,它还不像 Python 那样流行。
Python
一般来说,Python 在 Linux 环境中表现更好。由于它深深扎根于 Linux 社区,您会发现 Python 模块几乎可以在 Linux 中执行任何操作。
Python 还可以在其他平台上运行,例如 iOS 和 AIX。
按任务
电源外壳
您可以使用 PowerShell 创建用于管理日常任务的工具,甚至可以使用 Windows PowerShell 创建 GUI,使您的工具更加用户友好。
Python
Python 通常最适合用于“较重”的任务,例如机器学习、统计、数据科学以及服务器端 Web 和桌面应用程序。 Python 对图像处理也有很好的支持。
了解语法的共性和差异
让我们深入了解每种语言的具体细节,对它们进行比较和对比。
PowerShell 和 Python 是面向对象的,这意味着两者都建立在逻辑对象的概念之上,它们创建、操作和重用对象来执行特定任务。
PowerShell 和 Python 都通过模块的方式重用代码。模块稍后可以在其他程序中重用,或者您可以直接导入其他程序员创建的模块。
这两种语言都有一个大型模块库,您可以在脚本中轻松使用它们。
PowerShell 是基于任务的命令行 shell 和脚本语言,构建在 .NET 框架之上,它接受并返回 .NET 框架对象,而 Python 是一种解释性编程语言
Python 解释器采用人类可读的代码并创建解释器可以理解的另一种形式的代码,稍后在实际执行时将其更改为机器可读的代码。
现在让我们从这两种语言的基础知识开始,例如注释、声明变量、条件和其他基础知识,以更好地了解它们的异同。
评论
在 PowerShell 或 Python 中进行单行注释是相同的 - 在行开头使用井号 (#
),如下所示。
# This is a powerShell comment and will not be executed
# This is a Python comment and will not be executed.
声明变量
PowerShell 中的所有变量均以 $
开头,后跟名称。下面您可以看到如何分配变量来保存整数。
$var = 1
在 PowerShell 中定义字符串变量的工作方式相同,但您需要将值括在单引号或双引号中。
$var2="string"
$var3='string'
查看 about_Variables 文档以获取有关 PowerShell 变量的更多信息。
在 Python 中,变量的处理方式几乎相同,但不要求变量以 $
开头。
var1 = 7
var2 = "string"
var3 = 'string'
您可以通过 W3Schools 其他许多其他在线资源了解有关 Python 变量的更多信息。
使用数学运算
在 PowerShell 和 Python 中,任何不带小数的正数或负数都是整数。默认情况下,它们将被自动分配给整数类型的变量。可以对这些变量正常执行数学运算。
在 PowerShell 中,您可以在下面看到一些基本数学运算的示例。
$int1 = 70
$int2 = 77
$int3 = -10
$int1 + $int2
$int2 - $int1
$int1 + $Int3
查看 RedmondMag 上的如何在 PowerShell 中做数学系列了解更多信息。
同样,在 Python 中,您可以执行基本的数学运算,如下所示。
int1 = 70
int2 = 77
int3 = -10
int1 + int2
int2 - int1
int1 + int3
阅读这篇有用的 geeks2geeks.com 文章,了解有关 Python 中数学运算的更多信息。
使用条件语句
条件语句对于任何编程语言都很重要。条件语句允许开发人员根据一个或多个条件重定向代码流。当您了解 if/then 结构等条件语句时,您会发现 PowerShell 和 Python 几乎相同。
您可以在下面看到这两种语言之间存在细微但非常重要的差异。 PowerShell 严重依赖括号 ( )、大括号 { } 和其他特殊字符,但 Python 使用缩进。
请注意下面 PowerShell 示例中的所有括号和大括号。
if (Condition) {
Code to be executed if the condition is true
} else {
Other code to be executed if the condition is false
}
将 PowerShell 代码与下面的 Python 代码进行对比。您只会看到冒号表示条件语句的结尾,以及空格表示要在其中执行的代码。
if condition:
Code to be executed if the condition is true
else:
Other code to be executed if the condition is false
为了进行演示,让我们看看典型的 PowerShell if/then 语句的外观和行为。运行以下代码时,您将看到输出 77 大于 70
。
$var1 = 77
$var2 = 70
if ($var1 -gt $var2) {
Write-Host -Object "$var1 is greater than $var2"
} else {
Write-host -Object "$var1 is less than $var2"
}
相反,请注意 Python 中如何执行相同的任务。有很多差异,包括不同的运算符和将文本输出到控制台的命令。
if var1 > var2:
print(f"{var1} is greater than {var2}")
else:
print(f"{var1} is less than {var2}")
循环播放
编程语言中的另一个重要概念是循环。循环允许语言不断重复或迭代一段代码,直到满足条件或达到一定次数。
在 PowerShell 中,常见的 foreach 语句如下所示。
foreach ($item in $list) {
Code to be executed for each item
}
在 Python 中,执行相同任务的类似循环将使用 for 循环,如下所示。
for item in list:
Code to be executed for each item
PowerShell 和 Python 使用的语法有很多相似之处,特别是在语言的基础知识和核心使用方面。这些相似之处对于任何掌握 PowerShell 并想要了解更多 Python 的人来说都是一个巨大的优势,反之亦然。
以不同的方式解决同一问题
现在让我们展示如何使用 PowerShell 和 Python 以稍微不同的方式解决常见问题。为此,我们将读取一个包含行分隔数字的简单文本文件,并且仅将特定范围的数字返回到控制台。
我们将使用的文件名为 input_text.txt,行分隔数字包含从 1 到 6345 的各种数字。
我们将在 PowerShell 和 Python 中创建一个函数来处理从文件返回的所有数字。
使用 PowerShell 处理文件
下面您将看到如何在 PowerShell 中实现这一点。
Define a function called Get-TwoDigits
function Get-TwoDigits {
[CmdletBinding()]
param(
[Parameter()]
$List ## Provide an input parameter called List representing numbers
)
## Loop over each number in List. If the number is greater than 9 and less
## then 99, return that number to the conosle
foreach($num in $List){
if($num -gt 9 -and $num -le 99 ){
Write-Host $num
}
}
}
Read the text file and place contents into an array called inputlist
PS51> $inputlist = Get-Content -Path .\input_text.txt
Call the function providing the contents of the file as the List parameter
PS51> Get-TwoDigits -List $inputlist
当您运行 Get-TwoDigits
时,您将看到 PowerShell 将仅返回 input_text.txt 中 9 到 99 之间的任何数字。
使用 Python 处理文件
现在,我们将使用 Python 执行完全相同的步骤,以注意语法差异。
## Open the file handle using the open() method
File_Read = open("/PS_Vs._PY/input_text.txt")
## Read the file and split the large string up into an array with the splitlines() method
inputData = (File_Read.read().splitlines())
## Close the open file handle
File_Read.close()
## Define a function called two_digits with a single parameter called input_list
def two_digits (input_list):
## Loop over each number in List. If the number is greater than 9 and less
## then 99, return that number to the conosle
for num in input_list:
if (int(num) > 9) and (int(num) <= 99):
print(num)
>>> two_digits(inputData)
当您运行 two_digits()
函数时,您将看到 Python 将仅返回 input_text.txt 中 9 到 99 之间的任何数字。
在 Python 中创建函数几乎是相同的结构。请记住,缩进在 Python 中至关重要,区分大小写也很重要。
进一步阅读
- Prateek Singh 的 PowerShell Python 指南
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag