首頁 >後端開發 >Python教學 >您必須知道的十個有用的Python一行程序

您必須知道的十個有用的Python一行程序

WBOY
WBOY轉載
2023-04-12 22:01:101250瀏覽

您必須知道的十個有用的Python一行程序

儘管自發布​​以來,Python已經走過了30年的歷史,但它仍然是現存的最相關的高級程式語言之一。許多開發人員會選擇使用這種語言來開發易於維護的應用程序,並且只需要很少的手工操作就可以在許多作業系統和Linux的發行版.

Python最大的好處之一是它能夠繞過(完全是雙關語)其他語言中的許多約定,程式設計師只需付出很少的努力,就可以編寫非常簡單的小「妙語」來完成工作。下面舉幾個例子!

內容

  • 1.交換變數
  • 2.做一個快速餐巾階乘
  • #3.初始化並宣告多個變數
  • 4.開啟並閱讀檔案
  • 6.建立一個數字範圍清單
  • 7.顯示所有使用者(在Linux/Unix/BSD中)
  • 8.產生隨機密碼
  • 9.尋找文字中任何內容的實例
  • 10.將十六進位表達式轉換為明文
  • 常見問題

1.交換變數

因為您不必處理像記憶體中的位址這樣繁瑣的事情,所以可以在一行程式碼中完成變數之間的交換:

x, y = y, x

只需使用逗號分隔每個變量,並交換它們!

這是這個概念在一個片段中的樣子:

x = 1
y = 4
x, y = y, x
print(x,y)

在控制台中執行該指令應該會輸出「4 1」。

您必須知道的十個有用的Python一行程序

2.做一個快速餐巾階乘

Python的數學工具允許一些非常有創意的程式碼執行複雜的計算。例如,找出一些物體排列方式的最快方法是什麼?做階乘。與reduce()打電話,可以很快想出答案!

reduce(lambda a, b: a * b, range(1, x+1)

這個呼叫將計算您先前在「x」中定義的任何數字的階乘

#不要忘記這一點reduce()是的組成部分Python的函數工具圖書館。程式碼片段如下所示:

from functools import reduce
x = 12print(reduce(lambda a, b: a * b, range(1, x+1)))

您的控制台應該從這個特定的計算中輸出479001600。繼續做你想做的“x ”!

您必須知道的十個有用的Python一行程序

3.初始化並聲明多個變數

Python的語法規則允許你做一些非常瘋狂的事情。例如,一次性初始化和聲明盡可能多的變數。這與逐行執行相反。

x, y, z = 16, 78, 195

把這些印出來,你會得到「16 78 195」最棒的是,你甚至不必限制自己在一行中宣告一種類型的變數。將“y”聲明替換為類似“Hi”的字串,就可以了!

您必須知道的十個有用的Python一行程序

4.開啟並閱讀檔案

Python要求您像在許多其他語言中一樣逐行遍歷檔案。即便如此,它也讓您能夠在一行程式碼中實現打開和讀取文件的全部功能:

[line.strip() for line in open('file.txt')]

現在,如果我只想顯示我自己的預設bash配置文件的文本,我會這樣寫:

[print(line.strip()) for line in open('/home/miguel/.bashrc')]

您必須知道的十個有用的Python一行程序

5.寫入檔案

就像讀取檔案一樣,用這種漂亮的語言寫檔案的過程非常簡單。

with open("file.txt",'a',newline='n') as f: f.write("This is a new line in a file")

這隨著語句讓您避免了必須關閉檔案句柄的麻煩。因此,當您的應用程式開啟時,它不會與試圖存取它的其他應用程式發生衝突。

您現在可以使用您學習的用於讀取檔案的一行程式來檢查該行是否已正確新增!

[print(line.strip()) for line in open('file.txt')]

您必須知道的十個有用的Python一行程序

6.建立一個數字範圍列表

與LUA等其他腳本語言的工作方式類似,Python允許您產生預先填充的列表,只要操作導致可預測的結果。在這個程式碼片段中,我們建立了一個10個整數的列表,範圍從0到9:

lst = [i for i in range(0,10)]

列印這個列表將產生一個逗號分隔的數字列表,其中包含我們前面討論過的參數。

您必須知道的十個有用的Python一行程序

7.显示所有用户(在Linux/Unix/BSD中)

想知道在您的特定Linux安装中实际上有多少个用户名吗?Python有一个很好的方法,通过打开“/etc/passwd”文件,在一行中就可以做到这一点。在这种情况下,我们要做的就是从每行的第一个冒号(":")开始删除所有内容。

print('n'.join(line.split(":",1)[0] for line in open("/etc/passwd")))

如果您没有仔细查看该文件,您可能会惊讶地发现,系统创建的用户比您登录时使用的用户和根用户多得多。

您必須知道的十個有用的Python一行程序

用户列表通常有这么长,因为系统会根据您运行的服务创建自己的身份验证形式。

8.生成随机密码

像任何自尊的语言一样,Python允许你随机化事情,但是它不能不更进一步,允许你在一行中生成密码。诚然,这是一个非常漫长的过程..

pwd = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 %^*(-_=+)'; print(''.join([pwd[random.randint(0,len(pwd)-1)] for i in range(32)]))

这个特定的代码片段将生成一个32个字符的密码,允许使用空格。根据你的喜好调整。如果您出于某种原因不想在密码中使用空格,请删除字符串声明中的空格。不要忘记导入“随机”库,否则你的代码将无法工作!

您必須知道的十個有用的Python一行程序

9.查找文本中任何内容的实例

如果您正在阅读一个较长的文件,并试图找出其中有多少个特定表达式的实例,这就有点奇怪了:

import re; len(re.findall('d','The dumb lazy cat doesn't know how to hunt birds.'))

在这个特殊的例子中,我们试图找出字母“d”在它后面的字符串中出现了多少次。通过打印输出,控制台让我们知道这封信有3个实例。您可以使用整个单词和在文件中搜索来实现这一点。

您必須知道的十個有用的Python一行程序

10.将十六进制表达式转换为明文

通过一点迭代魔法,可以用一个简单的表达式将十六进制代码转换成纯文本:

print(''.join(chr(int(''.join(i), 16)) for i in zip(*[iter('576f772c2049276d2077726974696e6720696e2068657861646563696d616c21')]*2)))

里面的一大堆胡言乱语iter()是一个十六进制表达式,这段代码将其转换为“哇,我在用十六进制写!”

您必須知道的十個有用的Python一行程序

常见问题

Python相对于其他语言有多难?

虽然Python确实有一些特定于某些编码风格的缺陷,但由于它在可变类型方面的灵活性,Python提供了比其他语言更友好的初学者氛围。它是一种解释型语言,所以它不需要您处理手动分配内存并确保在不再使用时释放内存的繁琐工作。

Python稳定吗?

Python的开发人员强烈反对用新版本使旧代码无效的想法,并且在历史上一直非常小心地确保向后兼容更旧的代码。在2005年,Python社区不得不处理一个棘手的问题reduce()和许多其他功能从标准库中移除并且必须从Python 3000中的另一个导入。一般来说,这些事情都是公开的,如果您的代码停止正常运行,控制台会提供有用的信息,让您找出原因并做出相应的调整。

Python最好的开发环境是什么?

如果您想使用Python的集成开发环境,有几个跨操作系统的选项可供您选择:

  • 皮查姆

   –如果你真的想献身于Python,就用这个吧。这个IDE只专注于Python,包含大量的工具和库,可以帮助您流畅地编写代码。

  • Visual Studio代码

   –如果您希望最终扩展并学习其他语言,VSCode(在Linux中有时称为Code–OSS,在Arch Linux中称为“Code”包)提供了强大的功能以及针对各种语言的集成编译器。

  • 精力

   –它允许在任何终端模拟器中非常快速地编辑复杂的文本。它有很高的学习曲线,但应该是每个程序员的武器库。

以上是您必須知道的十個有用的Python一行程序的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除