# Python 基础知识-又称“ Hello World！” 以及如何实现

> 原文： [https://javabeginnerstutorial.com/python-tutorial/python-basics-a-k-a-hello-world-and-how-to-achieve-it-2/](https://javabeginnerstutorial.com/python-tutorial/python-basics-a-k-a-hello-world-and-how-to-achieve-it-2/)

在介绍并安装 Python 之后，让我们继续前进，并使用 Python 3 编写第一行代码。

第一步是使用 python3 命令启动交互式解释器。 三个箭头（或更大的符号）指示提示，我们可以在其中键入解释器的命令。 我们将输入以下文本：“`print('We want a shrubbery!')`”，然后按回车键。

以下代码段显示了您应该看到的内容：

```java
Python 3.4.2 (v3.4.2:ab2c023a9432, Oct 5 2014, 20:42:22)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> print('We want a shrubbery!')
We want a shrubbery!
```

这是基本的 Python 应用，它将给定的字符串输出到控制台。 基本上，我们将使用打印功能将所有消息写入控制台。

## 基本语法

Python 的基本语法与其他编程语言非常相似。 但是，有些差异会在开发应用时引起麻烦。

因此，让我们研究 Python 应用的基本语法。

### 缩进

这是您可能遇到的最令人不安的事情。 如果您没有正确配置 IDE 或使用其他格式设置扩展由他人编写的代码，这可能会在以后让您彻夜难眠。

**但是缩进是什么意思？**

在执行分组在一起的语句时，使用最广泛的编程语言会使用大括号（{}）。 Python 利用缩进，因为这样代码更易读。 让我们用一个小例子来演示一下：

**Java 代码**

```java
if(a == 42){a = 25; System.out.println(a);}else{a = 42;} 
```

**Python 代码**

```java
if a == 42:
   a = 25
   print(a)
else:
   a = 42
```

如您所见，Python 代码更具可读性（尽管我也是一个有良好基础的 Java 开发人员，但我认为这是我的看法，因此我可以覆盖前面的示例以使其可读）。 如果您有**缩进行（请仔细查看 python 代码中的缩进）**，则表示它属于同一执行组。 例如，在 Java 中，它将不会：

```java
if(a == 42)
   a = 25;
   System.out.println(a); // Indention will not work here. And it will give compilation error
else
   a = 42;
```

如果不使用花括号，则会出现 SyntaxError，因为在上面的情况下 System.out.println（a）; 不属于 if 语句。

**但是**这不是一篇有关 Java 或这两种编程语言之间的差异的文章，因此我从这件事回到*缩进*的主题。

为什么会导致不眠之夜？ 因为您有两种缩进方式：**空格**或 **TAB**。 **而且您不能将两者混为一谈！** 如果这样做，则会出现 TabError：

```java
>>> a = 33
>>> if a == 42:
...     a = 25  
...     print(a)
File "<stdin>", line 3
   print(a)
           ^
TabError: inconsistent use of tabs and spaces in indentation
```

在上面的示例中不可见，但是首先我使用空格，然后使用制表符使行缩进。 这导致异常。

如果我切换线路，则会收到另一个错误：

```java
File "<stdin>", line 3
   a = 25
         ^
```

IndentationError：unindent 与任何外部缩进级别都不匹配

这就是我不眠之夜的意思。 如果您混淆了所有内容，则必须浏览文件，找到在每个可能的地方都用制表符交换空格，反之亦然。

### 注释

注释代码有时是必要的（尽管一些开发人员说，如果必须编写注释来描述代码，则应重新编写代码）。

您可以使用井号（# ）。 这告诉解释器，井号后面的同一行上的文字仅是注释，它们无意执行：

```java
>>> print(1+2) # results in 3 : this is comment
3
```

**注意**与其他编程语言一样，**没有**多行注释。 如果要禁用代码块，则必须在每行的开头放置`#`。

### 身份标识

标识符是用于标识变量，类，函数，模块或其他对象的名称。

在 Python 中，您可以以字母（大写或小写无关紧要）或下划线（_）开头，并在其后跟随零个或多个字母，数字和下划线。 标识符名称中不允许使用标点符号（例如@，$和% ）。

该语言区分大小写，这意味着您可以拥有一个名为 my_variable 的变量和另一个名为 My_variable 的变量，它们将被视为不同的变量。 因此**要小心**，因为这在开发时也会引起问题。

### 保留字

高级编程语言几乎是自由形式的代码编写。 但是，有一些内部字词是为特殊用例保留的，当解释器遇到它们时，它们对解释器具有意义。

这意味着您不能将这些关键字用作标识符名称。 在其他情况下，您会根据关键字获得错误。

|假|类|最后|是|返回| |无|继续|对于| lambda |尝试| |真| def |来自|非本地| while | |和| del | global |不| with | |为| ifif |如果|或| yield | |声明|其他|导入|通过|| |中断|除了|提高||

当然，它们是区分大小写的。 这意味着您可以使用 false 作为变量名，但不能使用 False。

### 用户输入

当您可以编写交互式应用时，编程会变得很有趣。 交互性意味着用户可以向应用输入一些输入，然后他/她将成为应用的答案。

我现在不会从这里开始编写带有用户输入的应用，但是我将告诉您如何要求用户提供一些东西。

它带有输入功能，并且使用非常简单：

```java
>>> entered = input("Enter some text: ")
Enter some text: 42
>>> entered
'42'
```

如您所见，您可以将参数传递给输入函数，并且该参数将显示为用户的命令提示符。 他/她输入内容后，将其作为字符串存储在输入的变量中。

稍后，我们将更全面地检查输入功能。

## 基本运算符

现在是时候看看 Python 中可用的基本运算符了。 我知道在不了解基本类型的情况下并没有什么用，但是，嘿！ 我们已经知道语言中至少有数字和字符串，这对运算符来说是一个很好的起点。

### 算术运算符

每个人都知道它们，它们是数学的基础。 因此，Python 也必须了解它们。 如果它们来自正确的 tpye，它们也可以使用变量。 这意味着您不能在数字和字符串上使用加法。

让我们快速列举一些例子。 我希望这些例子能说明自己。 如果不是这种情况，请随时给我写一封信息，我还将在示例中添加说明性文字。

```java
>>> 6 + 5 # the + sign adds numbers up
11
>>> 6 - 5 # the - sign subtracts the second number from the firs
1
>>> 6 * 5 # the * sign multiplies the numbers
30
>>> 6.0 / 5 # the / sign divides the numbers
1.2
>>> 6.0 // 5 # the // sign makes an integer division
1.0
>>> 6 % 5 # the % calculates the modulo
1
>>> 6 ** 5 # the ** sign raises the first number to the power of the second
7776
```

### 比较运算符

这些运算符比较值（变量或值本身不再重要）。 结果来自布尔类型，可以为 True 或 False。

```java
>>> 5 == 4 # == is the equality operator, returns True when both sides are equal
False
>>> 4 == 4
True
>>> 5 != 5 # != is the inequality operator, returns False when both sides are equal
False
>>> 5 > 5 # > is the greater than operator
False
>>> 5 < 5 # < is the less than operator
False
>>> 5 >= 5 # >= is the greater or equal operator
True
>>> 5 <= 5 # is the less or equal operator
True
```

### 赋值运算符

我们已经知道 **Python 中的**赋值运算符，即等号（=）。 但是，这些运算符中有相当一部分具有不同的用法，但所有这些运算符都会减少一些编写所需的代码。

在下面的示例中，我将一遍又一遍地使用相同的变量来说明这些运算符的工作方式。 同样，如果您想知道示例的含义，请随时给我写邮件，并在这些示例中添加说明。

仅输入变量名（在本例中为 a）并按回车键，便可以在交互式解释器中看到变量的值。

```java
>>> a = 5
>>> a += 3 # a has the value of 8
>>> a -= 2 # a has the value of 6
>>> a *= 3 # a has the value of 18
>>> a /= 4 # a has the value of 4.5
>>> a //= 1 # a has the value of 4.0
>>> a %= 6 # a has the value of 4.0
>>> a **= 2 # a has the value of 16.0
>>> a
16.0
```

### 逻辑运算符

它们并不多：和，或不。 当我们看看爱是什么时，我们已经在复活节蛋中遇到了它们。 它们是逻辑运算符，因此最好是在使用它们的地方具有布尔值。

但是，这里有一点例外。 0，空对象和 None 被视为 False，因此您可以在条件表达式中使用它们（稍后将在后面的文章中使用）。 数字和非空对象当然被视为 True。

现在，让我们看一些例子：

```java
>>> a = True
>>> b = False
>>> a and b
False
>>> a or b
True
>>> not a
False
>>> not b
True
>>> not 0
True
>>> not 1
False
>>> not [] # this is an empty list
True
```

### 会员运营商

当我们想查看某物是否为集合的成员时，它会派上用场。 例如，数字 4 在前 5 个质数的列表中。

成员运算符是 in 关键字。 有些书也没有添加到此列表中，但据我们了解，不是一个逻辑运算符，它否定了所使用的值。

结果是布尔值 True 或 False。

```java
>>> primes = [2,3,5,7,11]
>>> 4 in primes
False
>>> 4 not in primes
True
>>> 5 in primes
True
```

