标签 python 下的文章

研究发现,硬盘一般三年就坏

根据一家安全数据恢复公司的研究,在它收到的 2007 个有缺陷的硬盘驱动器中,它发现这些硬盘的平均故障时间为 2 年 10 个月。而另外一家备份和云存储公司 Backblaze,以详细的硬盘和固态硬盘故障分析而闻名,在其检查的 17155 个故障硬盘中,硬盘故障的平均年龄为 2 年 6 个月。

消息来源:Ars Technica
老王点评:说实话这个数据有点令人惊讶地短。你的硬盘一般能用多久?

从微服务转换到单体应用,减少了 90% 的成本

一份来自 Prime Video 团队的亚马逊案例研究,评估了如何通过从微服务架构转向单体来节省资金。该团队最初创建了一个由 AWS Step Functions 协调的分布式组件的解决方案,这是一个基于状态机和任务的无服务器协调服务。最终他们的研究表明,微服务和无服务器组件在大规模下确实是有效的工具,但是否使用它们而不是单体应用,必须根据具体情况来决定。通过将服务转移到单体应用上,使得基础设施成本降低了 90% 以上。

消息来源:Dev Class
老王点评:微服务并不是灵丹妙药,云计算也不是银弹,AWS 推荐的也不一定是成本最优的。

Mojo:一种具有 C 语言速度的 Python 超集

Mojo 希望将 Python 的可用性与 C 语言的速度结合起来。Mojo 通过硬件加速,在运行特定数字算法时比 Python 快 35,000 倍。它是建立在下一代编译器技术之上的,使你能够定义零成本的抽象,并受益于类似 Rust 的内存安全。Mojo 代码可以访问各种人工智能调整的硬件功能,因此,对于某些种类的算法,它的速度远远超过了原版 Python,比如在 AWS 机器上运行 Mandelbrot 算法只需 0.03 秒,而 Python 3.10.9 则需要 1027 秒。有人称赞“Mojo 可能是几十年来最大的编程语言进步”。该语言还在早期开发中,仍然有一些缺失的部分,并且尚未开源。

消息来源:The Register
老王点评:会有这种既要又要的好事吗?让我们拭目以待。

智能音箱应该学会闭嘴

谷歌本周宣布,它将采取更多措施,阻止在你向 Nest 智能音箱发送命令时对你喋喋不休。当你要求它关闭你所在房间的灯光时,它会保持沉默,发出轻柔的铃声,让你知道它已经成功。这个新变化将在未来几周内推出。然而,这些智能音箱有时候还是忍不住多嘴,比如你要它改变恒温器的温度时,它仍然喜欢和你好好聊一聊;轻声请求它关闭客厅的灯时,它仍然会大声喊道:“关闭客厅的灯!”

消息来源:The Verge
老王点评:没有接入 ChatGPT 的“智能”音箱只是个语音助手而已,期待接入 ChatGPT 后,这些“智能”设备真的有了智能。

ARM 将自己制造芯片

ARM 此前和三星和台积电等公司合作制造过测试芯片,主要是帮助软件开发商熟悉新产品。它在过去半年开发的新芯片比以往“更先进”,针对目标是芯片制造商而不是软件开发商。ARM 此举在行业内部引发了担忧,如果它寻求出售其芯片,那么它将与其最主要客户高通和联发科展开直接竞争。ARM 内部人士否认该公司计划出售或授权新芯片,称该公司只是在开发原型。

消息来源:路透社
老王点评:亲自下场,未必是好事。可能是做给资本市场看的吧。

PyPI 将推出收费的组织账户

非营利性的 Python 软件基金会宣布,为了“PyPI 的长期可持续性,同时给我们的用户提供我们最需要的功能之一:组织账户”。组织账户有自己专属的品牌网络地址。目标是让大型社区项目、组织或管理多个子团队和多个软件包的公司更容易使用 PyPI。组织账户将向社区项目永久免费,而对于企业项目收取少量费用。所有的收入将直接回馈给 PyPI,用于雇佣专职员工以提供更好的服务。PyPI 强调,这些新功能是完全可选的。

消息来源:PyPI
老王点评:看得出来 Python 基金会很小心翼翼的尝试可持续发展的改变。

本教程解释了 Python 中变量的概念、它们的类型,以及如何在实际项目中使用的示例。

在 Python 中,变量是存储值的保留内存位置。

它们是个名称,可以分配一个值给它并在整个代码中引用它。使用变量使值可访问并为值提供与你的代码相关的上下文/含义。

在开始之前,我希望你已经安装了 Python 并设置了一个基本的编辑器。如果没有,请参考我的以下指南:

变量规则

  • 变量区分大小写。
  • 变量名称只能包含大写和小写字母(A–Z、a–z)、数字(0–9)和下划线(\_)。
  • 它们不能以数字开头。
  • Python 变量是 动态类型
  • Python 支持 Unicode 变量(例如 é 和 ü 等装饰字母,甚至中文、日文和阿拉伯符号)。
  • 根据 PEP 8 标准,变量名只能是小写,单词可以用下划线分隔(例如 total\_price)。

Python 变量:示例

要在 Python 中创建一个变量,我们需要使用赋值运算符(=)为其赋值。例如,下面的代码行创建了一个名为 x 的变量并为其赋值 10

x = 10

在 Python 中,变量是动态类型的,这意味着解释器可以根据分配给它的值来确定变量的数据类型。Python 支持各种类型的变量,包括整数、浮点数、字符串、布尔值和复数。

# 整型变量
age = 20

# 浮点变量
price = 4.99

# 字符串变量
name = "John Doe"

# 布尔变量
is_active = True

# 复数变量
z = 2 + 3j

变量在编程中很有用,因为它们允许我们存储和操作数据。例如,我们可以使用变量来执行数学运算、连接字符串以及根据布尔变量的值做出决策。

# 数学运算
x = 5
y = 10
z = x + y
print(z)  # 输出:15

# 字符串连接
first_name = "John"
last_name = "Doe"
full_name = first_name + " " + last_name
print(full_name)  # 输出:John Doe

A simple demonstration of variables in Python

变量也可以在现实世界的项目中用于存储和操作数据。例如,在 Web 应用中,我们可以使用变量来 存储用户输入、数据库查询以及向用户输出数据。

# 用户输入
name = input("What is your name? ")
print("Hello, " + name + "!")  # 输出: Hello, John!

# 数据库查询
import sqlite3

conn = sqlite3.connect("example.db")
cursor = conn.cursor()

cursor.execute("SELECT * FROM users WHERE id = ?", (1,))
user = cursor.fetchone()

print(user)  # 输出: (1, 'John Doe', '[email protected]')

# 输出数据给用户
balance = 100.00
print("Your current balance is ₹" + str(balance))  # 输出: Your current balance is ₹100.0

使用变量时的常见错误

在处理变量时,你可能会遇到一些常见错误。这里是其中的一些。

  • NameError:当你尝试访问尚未定义的变量时会发生此错误。例如,如果你尝试打印一个尚未赋值的变量的值,你将得到一个 NameError。以下代码给出了 NameError,因为变量 Full_name 未定义。
# NameError 演示
first_name = "John"
last_name = "Doe"
full_name = first_name + " " + last_name
print(Full_name)  # NameError

NameError example

  • TypeError:当你尝试对错误数据类型的变量进行操作时会发生此错误。例如,如果你尝试连接一个字符串和一个整数,你将得到 TypeError。下面的代码片段给出了 TypeError
# TypeError 演示
first_name = "John"
age = 10
print(first_name + age)

TypeError example in Python

  • ValueError:当你尝试将变量转换为不同的数据类型但无法进行转换时会发生此错误。例如,如果你尝试将包含字母的字符串转换为整数,你将得到 ValueError
# ValueError 演示
first_name = "John"
age = 10
print(int(first_name))

ValueError in Python

总结

了解变量对于任何 Python 开发人员来说都是必不可少的。变量允许我们存储和操作数据、执行数学运算、连接字符串等。如果你是 Python 编程的初学者,我希望本指南能够阐明这个概念。


via: https://www.debugpoint.com/python-variables/

作者:Arindam 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在这篇文章中,我将通过一些通俗易懂的例子来解释 Python 的 input() 函数的基础知识。

Python 是世界上最流行的编程语言之一,广泛应用于各种应用程序中。Python 中的一个基本概念是 input() 函数,它允许用户通过提供输入值与程序进行交互。

让我们看看 input() 函数是如何工作的,以及如何在 Python 程序中有效地使用它。

在开始之前,我希望你已经安装了 Python 并设置了一个基本的编辑器。如果没有,请参考我的以下指南:

Python Input 函数

Python 中的 input() 函数用于接受用户输入的字符串。它提示用户输入一个值并等待用户提供输入。然后将用户的输入作为字符串存储在变量中,稍后可以在程序中使用。

句法

input("your message to user")

当你运行 input() 函数时,它会向用户显示消息并 等待 输入。显示光标等待。当用户输入并按下回车键,input() 函数就会读取用户的输入。该值存储在你指定的变量中。

让我们看几个例子。

示例 1:简单的 input() 函数用法

以下代码片段接受输入并显示带有附加字符串的输出:

your_name = input("Enter your name:")
print("Hello " + your_name)

输出:

Enter your name:arindamHello arindam

Python 输入函数:一个简单的例子

示例 2:以整数和浮点数作为输入

在使用 input() 函数时,你还可以在运行时使用 int()float() 将输入转换。这是一个例子:

no_of_books = int(input("Enter total books ordered:"))
print ("Total number of books:", no_of_books)

price_of_each_book = float(input("Enter unit price:"))
print ("Total price:", no_of_books * price_of_each_book)

输出:

Enter total books ordered:5
Total number of books: 5
Enter unit price:10.1
Total price: 50.5

示例 3:连接列表

你还可以使用其他函数(例如列表)来接受一组值并将它们转换为 Python 中的 列表。这是一个接受输入并将其转换为列表的示例。然后使用另一组值并附加到第一个列表:

# 获取第一个列表的输入
list_1 = list(input("Enter numbers for list 1:"))

# 获取第二个列表的输入
list_2 = list(input("Enter some letters for list 2:"))

# 循环遍历第二个列表并添加到第一个列表
for j in list_2:
    list_1.append(j)

# 打印修改后的第一个列表
print(list_1)

输出:

Enter numbers for list 1:1234
Enter some letters for list 2:ABCD
['1', '2', '3', '4', 'A', 'B', 'C', 'D']

总结

我希望这个简单的指南通过几个示例阐明了 input() 函数。对于简单的场景,它是一个强大的功能,可以从标准输入中接受值。


via: https://www.debugpoint.com/input-function-python/

作者:Arindam 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Unix 之父 Ken Thompson 从 Mac 转到了 Linux

今年已 80 岁的 Ken Thompson 是 Unix、C 语言、Go 语言等一系列重要项目的共同创造者。他在最近的一次演讲中,回答了一个问题 “如今使用什么操作系统?”他说,“在我生命中的大部分时间里都在运行苹果操作系统。”但最近五年他开始对苹果不太满意了,而最近几个月,他把它扔了,使用 Linux 了,尤其是树莓派上运行的 Raspbian,即树莓派操作系统。这引来了在场观众的掌声。

消息来源:Slashdot
老王点评:恭喜,我们又多了一位 Linux 用户~

大语言模型涌现无法预测的能力

2017 年谷歌大脑的研究人员提出了被称为 转化器 Transformer 的新型架构(即 GPT 中的 “T” —— 生成式预训练转化器),它能并行处理大块文本,能通过增加模型的参数快速扩展语言模型的复杂度。2020 年 OpenAI 的研究人员发现随着参数规模的增加,大语言模型改进了其能力和准确度。但大语言模型也同时带来了一些始料未及的东西。研究人员发现大语言模型产生了数以百计的“新”能力,这种行为被称为“ 涌现 emergent ”。了解涌现可揭示出 AI 和一般机器学习深层问题的答案,如复杂模型是真的在做新事情,还是极其擅长统计。

消息来源:《量子杂志》
老王点评:就怕 AI 悄悄“进化”出人类不知道、控制不了的能力,前两天不是有消息说,GPT-4 开始谋求“越狱”了?这个事情我们观察一下再报道。

让 Python 和 C 语言性能相当的新编译器

Codon 是一个新的 “高性能 Python 编译器,它可以将 Python 代码编译为本地机器代码,没有任何运行时间的开销”。与 Python 相比,在单线程上,典型的速度提升是 10-100 倍或更多。而且 Codon 支持原生多线程,这可以使速度再提高许多倍。Codon 的性能与 C/C++ 的性能相当(有时甚至更好)。用户只需像他们习惯的那样写 Python,而不必担心数据类型或性能,Codon 会自动处理这些问题,他们的代码运行速度比普通 Python 快 10 到 100 倍。

消息来源:MIT
老王点评:易用和高性能兼得。

在 Ubuntu 和其他发行版中,Python 的默认 IDE IDLE 没有被默认安装。在本指南中了解如何安装它。

IDLE( 集成开发学习环境 I ntegrated D evelopment and L earning E nvironment )是一个 Python IDE,由 Python 语言本身编写,在 Windows 中通常作为 Python 安装 的一部分而安装。它是初学者的理想选择,使用起来很简单。对于那些正在学习 Python 的人,比如学生,它可以作为一个很好的 IDE 来开始使用。

语法高亮、智能识别和自动补全等基本功能是这个 IDE 的一些特点。你可以随时在官方 文档 中了解更多关于 IDLE 的功能。

Ubuntu 和其他 Linux 中的 IDLE

所有的 Linux 发行版,包括 Ubuntu,都预装了 Python。即使你手动升级或安装了 Python 版本,IDLE IDE 也不会自带安装。你必须手动安装它。

对于 Debian、Ubuntu、Linux Mint 和相关发行版,打开终端,运行以下命令来安装 IDLE:

sudo apt update
sudo apt install idle3

当命令询问你是否要安装 IDLE 时,输入 Yes。命令完成后,IDLE 将被安装在你的 Ubuntu 系统中。

对于 Fedora、RHEL、CentOS,使用下面的命令来安装它:

sudo dnf update
sudo dnf install idle3

Arch Linux 用户可以使用以下命令进行安装:

sudo pacman -S python tk

IDLE 在 Ubuntu 的安装和运行

启动 IDLE 并编写一个测试程序

在 Ubuntu、Debian、Linux Mint 和 Fedora 中安装后,你可以在应用菜单中找到 IDLE 的图标。见下图:

应用菜单中的 IDLE 图标

如果你使用的是 Arch Linux,你需要在命令行中运行以下内容来启动 IDLE:

idle

启动 IDLE 后,你应该看到主窗口,如下图所示:

IDLE 编辑器主窗口

默认情况下,它会显示一个 交互界面 Shell ,你可以直接在每一行中执行 Python 代码。它的工作方式和任何 Shell 解释器一样。而当你点击回车键时,你会得到输出,还有三个 > 符号进入下一行,执行下一个命令。

在 IDLE 中运行一个简单的 Python 语句

IDLE 也允许你从它的文件菜单中打开任何 .py 文件。它将在一个单独的窗口中打开该文件,在那里你可以进行修改并直接运行它。你可以使用 F5 或者从选项 “ 运行 Run > 运行模块 Run Module ” 来运行。

从 IDLE 中打开的一个 Python 文件

使用菜单运行该文件的选项

输出会显示在一个单独的输出窗口中。在输出窗口中,你可以开始调试,进入一行或文件,查看堆栈跟踪和其他选项。

输出显示在 IDLE 的一个单独的输出窗口中

总结

现在你学会了如何在 Ubuntu 和其他发行版中安装 IDLE IDE,以及如何运行一条语句或一个 Python 程序。对于初学者来说,IDLE 是一个很好的起点,在进入更复杂的 IDE 之前,可以先掌握基础知识。

我希望这篇指南对你的 Python 之旅有所帮助。


via: https://www.debugpoint.com/install-idle-ubuntu-linux/

作者:Arindam 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出