跳至主要內容

Hello, world!

大约 5 分钟

Hello, world!

现在让我们看一个非常简单的Python代码示例。这段代码将显示一个非常基础的操作:在屏幕上打印(显示)文本。

点击代码框右端的来执行它,第一次执行可能会卡顿。你可以修改它,来打印不同的内容。

print('Hello, world!')

"Hello, World!" 程序的起源可以追溯到1972年,与C语言的发展密切相关。它最初由Brian Kernighan编写,出现在他和Dennis Ritchie共同撰写的《C程序设计语言》(The C Programming Language)一书中。这个程序作为示例被用来展示最基础的语法和结构,用于在屏幕上打印出 "Hello, World!" 这句话。

这行代码是Python中最基础的形式之一。

发生了什么?
  • 首先,这是一行 python 代码,并且这行只有一个表达式print('Hello, world!')
    • 是表达式,意味着它可以被求出一个值,但是这里的重点在于求值的过程
  • print 是一个 python 自带的函数(内置函数),作用是接收内容,并且在屏幕上显示。
    • 你不需要知道 python 如何在屏幕上显示文字,你只需要告诉它你想显示什么。
    • 括号里面(如果有),是你传递给这个函数的内容
    • 如果我们直接写print,求出来的值就是函数本身,不会有任何作用
      • 如果在函数后面加一个括号(必须是英文),求值print()会先调用(运行)这个函数(print),然后得到这个函数返回的值
      • 调用print不会返回任何值
        • 在 python 中,这意味着返回None这个值
      • 这里返回的值不重要,重要的是,在求值过程中,调用print时,它完成了我们想要的事情
    • 事实上,print本身是一个变量,只是它的值是一个函数,我们甚至可以改变它的值,这一点我们之后会涉及到

试一试!

print
print()
print(print)
print('print')
print(print())
print(print('hello'))
print(hello)
print('print(hello)')
print      ( 'awa'   )

在这个例子中,它会在屏幕上显示文本Hello, world!。

这个简单的例子体现了编程中的“抽象”概念。你不需要知道计算机如何在屏幕上显示文字,你只需要告诉它你想显示什么。这就是编程语言强大之处:它们隐藏了复杂的底层细节,让你可以专注于要解决的问题。

字符串

编程语言也是一门语言,虽然交给计算机去执行,但本质上是给人看的

就像我们说话一样,面包表示一块面包,而"面包"表示"面包"这个词本身

'包围起来,用于表示它是这些字符本身,而不是其它的功能代码

它的Hello, world!,也是我们想要显示的东西

具体来说,是 H e l l o ,  w o r l d !

我们称这样的内容为字符串(string, 缩写是str)

'Hello, world!'是我们表示这个字符串的方法,称为这个字符串的字面量

提示

python 支持两种不同的引号('")包裹的字符串,它们表示同样的意思

print("Hey there!")

表达式

python 可以直观地进行数学计算,直接写下想要表达的就是

运行一下,看看它们对应了什么样的数学计算

print(1+1)

python 会忽略一些空格,我们使用空格让代码更有可读性

你甚至能这样(并没有可读性)

print  ( 2  * 3+  1  )
print(8 + 10 * 2)
print(2 * 5 / 3)
print(2**3)
print(7//3)
print(7%3)

正如你所见到的,+, - 对应数学中的加减,*, / 对应数学中的乘除

**对应数学中的乘方(在一些其它编程语言中是^)

//%分别对应于取小学除法的 整数商 和 余数

python 会遵循运算符的优先级进行运算,同样优先级的运算符遵循从左到右的顺序,这也和数学的习惯一致

这样可以求出值的内容叫作表达式'Hello, world!'有值,所以它也是表达式

如果你无法确定优先级,可以使用括号()将内容括起来

print(2 / ((3+1) * (1+1)))

为了求出整体的值,python 会去先求出局部的值,然后再进行计算

以此类推,所有的内容都会按照正确的顺序被计算

让我们看看发生了什么:

  • 计算2 / ((3+1) * (1+1)),发现需要先算出((3+1) * (1+1)))
    • 计算((3+1) * (1+1))),发现需要先算出(3+1)(1+1)
      • 计算(3+1)得出4
      • 计算(1+1)得出2
    • 计算(4*2)得出8.0
  • 计算2/8.0得出0.25

挑战: 打印 2的31次方减一 的值

这是大多数语言里整数(Integer, 缩写是int)的最大值

但是 python 中的整数理论上是没有上限的

参考答案
print(2**31 - 1)
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v3.0.0-alpha.10