从Hello World到“能做简单计算”,吃透基础语法
我们从最基础的 "Hello World" 开始,一步步深入到能进行简单计算,在这个过程中透彻理解基础语法。
使用 Python 作为教学语言,因为它语法简洁,最适合初学者理解核心概念。最后我会提供 Java 和 C++ 的对比版本。
第一阶段:Hello World - 程序的起点 bG9pajNqLmNvbQ== # er.loij3j.com#bG9pajNqLmNvbQ==
任何编程语言的学习都从这里开始。它的目的是验证你的开发环境是否搭建成功,并运行第一个程序。
Python 代码:
print("Hello, World!")
语法解剖:
print():这是一个 函数。你可以把它理解为一个“工具”,它的功能是把括号里的内容输出到屏幕上。"Hello, World!":这是一个 字符串。在编程中,文本内容需要用引号(单引号''或双引号"")包裹起来。- 括号
():函数名后面必须跟着括号,括号里面是你要给这个函数的“材料”(参数)。这里我们给print函数的材料就是一段文字。 - 代码行:在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}")
代码深度解析:
-
if / elif / else:这是 条件判断 语句。程序会根据条件决定执行哪一段代码。if operator == "+":如果运算符是加号,就执行下面的缩进代码。elif是else if的缩写,用于检查其他条件。else是所有上述条件都不满足时执行的“兜底”选项。
-
==:这是 比较运算符,用于检查左右两边的值是否相等。注意它和赋值运算符=完全不同。 -
缩进:在Python中,缩进(通常是4个空格)决定了代码的层次结构。隶属于
if,elif,else的代码块必须统一缩进。 -
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" 到 "简单计算器" 的旅程,你已经吃透了编程最基础、最核心的语法概念:
- 基本输出:
print() - 变量与数据类型:如何存储和表示数据(整数、浮点数、字符串、布尔值)
- 运算符:算术运算符 (
+,-,*,/),赋值运算符 (=),比较运算符 (==) - 用户输入:
input()及类型转换 - 条件判断:
if,elif,else让程序有了“决策”能力 - 循环:
while循环让程序能够重复执行任务,break和continue用于控制循环流程。
bG9pajNqLmNvbQ== # er.loij3j.com#bG9pajNqLmNvbQ==
这些是构建所有复杂程序的基石。之后,继续学习 函数(用于组织代码)、列表/数组(用于存储一系列数据) 等概念,你的编程能力会越来越强!
浙公网安备 33010602011771号