4.7 KiB
4.7 KiB
C++与Python的对比 与 Python基本语法
1. 变量
区别: Python 不需要声明类型,它会自动推导,相当于前面加了C++的 auto 一样,并且也不需要分号
| C++ | Python |
|---|---|
int a = 10; |
a = 10 |
float b = 3.14; |
b = 3.14 |
string s = "hello"; |
s = "hello" |
bool f = true; |
f = True (首字母需要大写与C++的true不一样) |
**2. 输入输出 **
输出:
| C++ | Python |
|---|---|
cout << "Hello"; |
print("Hello") |
cout << "Num: " << a; |
print("Num", a) |
输入:
Python 的输入默认是字符串类型,如果要进行计算,需要手动强制类型转化
| C++ | Python |
|---|---|
string s; cin >> s; |
s = input() |
int n; cin >> n; |
n = int(input()) (必须强制类型转化为int才能用于数学计算) |
3. 判断语句
区别:
- 没有括号
()包围条件 - 行尾必须加冒号
: - 没有大括号
{},全靠缩进(通常为4个空格,可以使用Tab按键来快速缩进)来表示某个代码块 else if变成了elif
C++:
if (x > 0) {
cout << "正数";
} else if (x == 0) {
cout << "零";
} else {
cout << "负数";
}
Python:
if x > 0: # 没括号,有冒号
print("正数") # 必须缩进,表示是属于 x > 0 的这个代码块
elif x == 0: # else if 变成 elif,并且回退缩进,从 x > 0 的代码块中退出
print("零")
else:
print("负数")
Python的缩进
你可以把缩进看作是**“文件目录的层级”**
-
缩进越深,说明它属于越内部的逻辑
-
一旦缩进退回来,说明那个逻辑块结束了
C++ (用花括号
{}决定范围) C++ 根本不在乎你有没有缩进,只要有{}就能跑。哪怕你写成一行也是对的(虽然很丑)// C++ 即使写得乱七八糟,机器也能读懂,因为有 {} void fun() { if(isReady){ do(); } }Python (用缩进决定范围) Python 没有
{},必须靠缩进排版。如果你乱写,程序直接报错,或者逻辑完全变了# Python 必须写得整整齐齐 def fun(): # 函数下也必须缩进,代表函数的代码块范围 if is_ready: # 冒号代表下面要开始缩进来确定它自己的代码块范围了 do() # 这行缩进了,说明它属于 if print("Done") # 这行退回去一个缩进了,说明它不属于 if,但属于 fun 函数内部 print("Over") # 没有缩进,代表它不属于任何逻辑代码块的内部
**4. 循环 **
For 循环
区别: C++ 的 for(int i=0; i<n; i++) 在 Python 中用 range(n) 实现
C++:
// 循环 5 次:0, 1, 2, 3, 4
for (int i = 0; i < 5; i++) {
cout << i;
}
Python:
# range(5) 就代表 [0, 1, 2, 3, 4] 左闭右开的区间
for i in range(5):
print(i)
While 循环
区别: 同样是去掉括号,加上冒号。注意 Python 没有 i++,必须写 i += 1
C++:
while (i < 5) {
cout << i;
i++; // 或者 ++i
}
Python:
while i < 5:
print(i)
i += 1 # Python 没有 ++ 运算符
5. 函数
核心区别:
- 关键字:C++ 用
返回值类型开头,Python 统一用def开头 - 参数:Python 不需要 写参数类型
- 结构:同样是去掉大括号
{},行尾加冒号:,内容靠 缩进
写法对比
1:带返回值的函数 (比如求和)
C++:
// 必须声明返回类型(int)和参数类型(int)
int add(int a, int b) {
return a + b;
}
// 调用
int result = add(5, 10);
Python:
# 统一用 def,参数没类型,结尾加冒号
def add(a, b):
return a + b # 缩进
# 调用
result = add(5, 10)
2:无返回值的函数 (Void 类型)
C++:
// 使用 void
void say_hello(string name) {
cout << "Hello, " << name << endl;
}
Python:
# 还是用 def,如果没有在内部写 return,就等于没有返回值
def say_hello(name):
print(Hello, name)