从Hello World到“能做简单计算”,吃透基础语法

我们从最基础的 "Hello World" 开始,一步步深入到能进行简单计算,在这个过程中透彻理解基础语法。

使用 Python 作为教学语言,因为它语法简洁,最适合初学者理解核心概念。最后我会提供 Java 和 C++ 的对比版本。


第一阶段:Hello World - 程序的起点 bG9pajNqLmNvbQ== # er.loij3j.com#bG9pajNqLmNvbQ==

任何编程语言的学习都从这里开始。它的目的是验证你的开发环境是否搭建成功,并运行第一个程序。

Python 代码:

print("Hello, World!")

语法解剖:

  1. print():这是一个 函数。你可以把它理解为一个“工具”,它的功能是把括号里的内容输出到屏幕上。
  2. "Hello, World!":这是一个 字符串。在编程中,文本内容需要用引号(单引号 '' 或双引号 "")包裹起来。
  3. 括号 ():函数名后面必须跟着括号,括号里面是你要给这个函数的“材料”(参数)。这里我们给 print 函数的材料就是一段文字。
  4. 代码行:在Python中,一行代码就是一条指令。

运行它: 将代码保存为 hello.py,然后在终端或命令行中运行 python hello.py


第二阶段:理解“数据” - 变量与数据类型bG9pajNqLmNvbQ== # er.loij3j.com#bG9pajNqLmNvbQ==

程序是用来处理数据的。我们首先要学会如何把数据“存起来”。

1. 变量

变量就像一个带标签的盒子,你可以把数据放进去,然后通过标签名来使用它。

# 把数字 10 放进一个叫做 ‘age’ 的盒子里
age = 10

# 把字符串 “Alice” 放进一个叫做 ‘name’ 的盒子里
name = "Alice"

# 使用这些盒子里的数据
print(name)     # 输出:Alice
print(age)      # 输出:10

语法 变量名 = 值=赋值运算符,意思是将右边的值“赋予”左边的变量。

2. 基本数据类型bG9pajNqLmNvbQ== # er.loij3j.com#bG9pajNqLmNvbQ==

数据有不同的类型,就像物品有书、水果、衣服之分。

数据类型 含义 示例 说明
整数 (int) 没有小数点的数 10, -5, 0 用于计数、索引
浮点数 (float) 有小数点的数 3.14, -0.001, 2.0 用于测量、计算
字符串 (str) 文本 "Hello", 'Python' 用于表示文字信息
布尔值 (bool) 逻辑值 True, False 用于条件判断

查看数据类型:

type_of_age = type(age)
print(type_of_age) # 输出:<class 'int'>

第三阶段:让程序“思考” - 运算符与输入bG9pajNqLmNvbQ== # er.loij3j.com#bG9pajNqLmNvbQ==

现在,我们可以开始对数据进行计算和交互了。

1. 算术运算符

就是数学中的加减乘除。

a = 10
b = 3

print(a + b)   # 加,输出 13
print(a - b)   # 减,输出 7
print(a * b)   # 乘,输出 30
print(a / b)   # 除,输出 3.333...
print(a // b)  # 取整除法,输出 3
print(a % b)   # 取余数,输出 1 (10除以3,余1)
print(a ** b)  # 乘方,输出 1000 (10的3次方)

2. 获取用户输入bG9pajNqLmNvbQ== # er.loij3j.com#bG9pajNqLmNvbQ==

让程序从用户那里获取数据。

# input() 函数会暂停程序,等待用户输入,并将输入的内容作为字符串返回
your_name = input("请输入你的名字:")
print("你好, " + your_name + "!") # 用 + 号连接字符串

# 输入数字需要进行类型转换
number_str = input("请输入一个数字:")
number = int(number_str)  # 将字符串转换为整数
# 或者简写为: number = int(input("请输入一个数字:"))
print("你输入的数字是:", number)

第四阶段:实现“简单计算器”bG9pajNqLmNvbQ== # er.loij3j.com#bG9pajNqLmNvbQ==

我们将上面所有的知识组合起来,创建一个能进行加减乘除的简单计算器。

版本1.0:基础版

# 1. 获取用户输入
num1 = float(input("请输入第一个数字:"))  # 使用 float 可以接受小数
operator = input("请输入运算符 (+, -, *, /):")
num2 = float(input("请输入第二个数字:"))

# 2. 进行计算并输出结果
result = 0  # 初始化一个变量来存储结果

if operator == "+":
    result = num1 + num2
elif operator == "-":
    result = num1 - num2
elif operator == "*":
    result = num1 * num2
elif operator == "/":
    if num2 != 0:  # 检查除数是否为0,防止程序崩溃
        result = num1 / num2
    else:
        print("错误:除数不能为零!")
        exit()  # 退出程序
else:
    print("不支持的运算符!")
    exit()

# 3. 输出结果
print(f"计算结果:{num1} {operator} {num2} = {result}")

代码深度解析:

  1. if / elif / else:这是 条件判断 语句。程序会根据条件决定执行哪一段代码。

    • if operator == "+": 如果运算符是加号,就执行下面的缩进代码。
    • elifelse if 的缩写,用于检查其他条件。
    • else 是所有上述条件都不满足时执行的“兜底”选项。
  2. ==:这是 比较运算符,用于检查左右两边的值是否相等。注意它和赋值运算符 = 完全不同。

  3. 缩进:在Python中,缩进(通常是4个空格)决定了代码的层次结构。隶属于 if, elif, else 的代码块必须统一缩进。

  4. f-string 格式化字符串f"..." 是一种强大的字符串格式,可以在字符串中直接嵌入变量,用 {变量名} 表示。这比用 + 号连接更清晰、更高效。

版本1.1:增强版(加入循环)bG9pajNqLmNvbQ== # er.loij3j.com#bG9pajNqLmNvbQ==

让计算器可以持续使用,直到用户选择退出。

while True:  # 创建一个无限循环
    print("\n--- 简单计算器 ---")

    # 获取用户输入
    num1 = float(input("请输入第一个数字:"))
    operator = input("请输入运算符 (+, -, *, /),输入 'q' 退出:")
    
    if operator == 'q':
        print("感谢使用,再见!")
        break  # break 会跳出整个循环

    num2 = float(input("请输入第二个数字:"))

    # ... (这里的计算逻辑和版本1.0一样) ...
    result = 0
    if operator == "+":
        result = num1 + num2
    elif operator == "-":
        result = num1 - num2
    elif operator == "*":
        result = num1 * num2
    elif operator == "/":
        if num2 != 0:
            result = num1 / num2
        else:
            print("错误:除数不能为零!")
            continue  # continue 会跳过本次循环的剩余代码,直接开始下一次循环
    else:
        print("不支持的运算符!")
        continue

    print(f"计算结果:{num1} {operator} {num2} = {result}")

新概念解析:

  • while True::创建一个循环。只要条件为 True(永远为真),循环体内的代码就会一遍又一遍地执行。
  • break:立即终止整个循环。
  • continue:立即跳过当前这次循环中剩余的代码,直接开始下一次循环。

多语言对比:Java 和 C++ 的实现bG9pajNqLmNvbQ== # er.loij3j.com#bG9pajNqLmNvbQ==

为了帮助你理解不同语言的语法差异,这里是同一个简单计算器在 Java 和 C++ 中的实现。

Java 版本bG9pajNqLmNvbQ== # er.loij3j.com#bG9pajNqLmNvbQ==

Java 是强类型、面向对象的语言,更严谨,代码量稍多。

import java.util.Scanner; // 需要导入 Scanner 类来获取输入

public class SimpleCalculator {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in); // 创建扫描器对象
        
        while (true) {
            System.out.println("\n--- 简单计算器 ---");
            
            System.out.print("请输入第一个数字:");
            double num1 = scanner.nextDouble();
            
            System.out.print("请输入运算符 (+, -, *, /),输入 'q' 退出:");
            String operator = scanner.next();
            
            if ("q".equals(operator)) {
                System.out.println("感谢使用,再见!");
                break;
            }
            
            System.out.print("请输入第二个数字:");
            double num2 = scanner.nextDouble();
            
            double result;
            switch (operator) { // Java 的 switch 语句
                case "+":
                    result = num1 + num2;
                    break;
                case "-":
                    result = num1 - num2;
                    break;
                case "*":
                    result = num1 * num2;
                    break;
                case "/":
                    if (num2 != 0) {
                        result = num1 / num2;
                    } else {
                        System.out.println("错误:除数不能为零!");
                        continue;
                    }
                    break;
                default:
                    System.out.println("不支持的运算符!");
                    continue;
            }
            System.out.println("计算结果:" + num1 + " " + operator + " " + num2 + " = " + result);
        }
        scanner.close(); // 关闭扫描器
    }
}

C++ 版本bG9pajNqLmNvbQ== # er.loij3j.com#bG9pajNqLmNvbQ==

C++ 更接近底层,性能高,但需要手动管理内存等细节。

#include <iostream> // 包含输入输出流头文件
using namespace std; // 使用标准命名空间

int main() {
    while (true) {
        cout << "\n--- 简单计算器 ---" << endl;
        
        double num1, num2;
        char operator_; // C++ 中字符用 char
        string input;   // 字符串用 string
        
        cout << "请输入第一个数字:";
        cin >> num1;
        
        cout << "请输入运算符 (+, -, *, /),输入 'q' 退出:";
        cin >> input;
        
        if (input == "q") {
            cout << "感谢使用,再见!" << endl;
            break;
        }
        // 取输入字符串的第一个字符作为运算符
        operator_ = input[0];
        
        cout << "请输入第二个数字:";
        cin >> num2;
        
        double result;
        switch (operator_) { // C++ 的 switch 语句
            case '+':
                result = num1 + num2;
                break;
            case '-':
                result = num1 - num2;
                break;
            case '*':
                result = num1 * num2;
                break;
            case '/':
                if (num2 != 0) {
                    result = num1 / num2;
                } else {
                    cout << "错误:除数不能为零!" << endl;
                    continue;
                }
                break;
            default:
                cout << "不支持的运算符!" << endl;
                continue;
        }
        cout << "计算结果:" << num1 << " " << operator_ << " " << num2 << " = " << result << endl;
    }
    return 0;
}

你已掌握的核心语法bG9pajNqLmNvbQ== # er.loij3j.com#bG9pajNqLmNvbQ==

通过这个从 "Hello World" 到 "简单计算器" 的旅程,你已经吃透了编程最基础、最核心的语法概念:

  1. 基本输出print()
  2. 变量与数据类型:如何存储和表示数据(整数、浮点数、字符串、布尔值)
  3. 运算符:算术运算符 (+, -, *, /),赋值运算符 (=),比较运算符 (==)
  4. 用户输入input() 及类型转换
  5. 条件判断if, elif, else 让程序有了“决策”能力
  6. 循环while 循环让程序能够重复执行任务,breakcontinue 用于控制循环流程。
    bG9pajNqLmNvbQ== # er.loij3j.com#bG9pajNqLmNvbQ==
    这些是构建所有复杂程序的基石。之后,继续学习 函数(用于组织代码)列表/数组(用于存储一系列数据) 等概念,你的编程能力会越来越强!
posted @ 2025-11-30 13:38  chen远  阅读(1)  评论(0)    收藏  举报