Python基础语法详解2:输入输出与运算符全解析

目录

前言:

[一、Python 输入输出(I/O):简洁至上 vs C++ 的严谨性](#一、Python 输入输出(I/O):简洁至上 vs C++ 的严谨性)

[1. 输出:print () 函数 vs C++ 的 cout/printf](#1. 输出:print () 函数 vs C++ 的 cout/printf)

[二、Python 运算符:灵活丰富 vs C++ 的基础通用](#二、Python 运算符:灵活丰富 vs C++ 的基础通用)

[1. 算术运算符:简化运算 vs C++ 的基础实现](#1. 算术运算符:简化运算 vs C++ 的基础实现)

[2. 赋值运算符:更灵活 vs C++ 的基础赋值](#2. 赋值运算符:更灵活 vs C++ 的基础赋值)

[3. 比较运算符:新增身份判断 vs C++ 的基础比较](#3. 比较运算符:新增身份判断 vs C++ 的基础比较)

[4. 逻辑运算符:语法更直观 vs C++ 的符号表示](#4. 逻辑运算符:语法更直观 vs C++ 的符号表示)

[5. 特殊运算符:Python 专属(C++ 无对应)](#5. 特殊运算符:Python 专属(C++ 无对应))

三、总结

学习建议


前言:

作为编程入门的核心知识点,输入输出(I/O)和运算符是搭建程序逻辑的基础。Python 以简洁易用著称,而 C++ 则偏向底层和严谨,两者在这两部分的设计思路差异显著。本文将详细讲解 Python 的输入输出和运算符,并在关键节点与 C++ 对比,帮助你更深刻地理解 Python 的特性,同时巩固多语言思维。

一、Python 输入输出(I/O):简洁至上 vs C++ 的严谨性

输入输出是程序与用户交互的核心,Python 把 "简洁" 做到了极致,而 C++ 需要更多的语法约束和类型声明。

1. 输出:print () 函数 vs C++ 的 cout/printf

Python 的print()函数是通用输出工具,无需关注数据类型,一行代码即可完成大部分输出需求。

  • **基础用法:**直接输出任意类型数据,无需类型转换、
python 复制代码
print("Hello Python")
print(100 + 200)
name = "张三"
age = 20
print("姓名:", name, "年龄:", age)
# 结果:姓名: 张三 年龄: 20
  • **格式化输出:**一种语法叫做"格式化字符串",此处的f表示"format",此时就可以使用{}这样的语法往字符串里嵌入变量或者表达式。
python 复制代码
a = 10
print(f'a的值是{a}')
  • **多输入处理:**一行输入多个值(用分隔符分割)
python 复制代码
a, b, c = map(int, input("请输入三个数:").split())
print(a + b + c)  # 输入:1 2 3 → 输出:6

C++ 输入需提前声明变量类型,cin自动匹配类型,scanf需指定格式符

cpp 复制代码
int main() 
{
    string name;
    int age;
    float height;
    // cin输入:自动匹配类型
    cout << "请输入姓名:";
    cin >> name;
    cout << "请输入年龄:";
    cin >> age;
    // scanf输入:指定格式符
    cout << "请输入身高:";
    scanf("%f", &height);
    // 多输入:一行输入多个值
    int a, b, c;
    cout << "请输入三个数:";
    cin >> a >> b >> c;
    cout << a + b + c << endl;
    return 0;
}

核心差异:

  • Python 的input()默认返回字符串,C++ 的cin/scanf直接按变量类型接收;
  • Python 处理多输入需手动分割(split()),C++ 的cin可直接连续接收;
  • Python 无需关注内存地址,C++ 的scanf需加&取地址符(除字符串外)。

补充:

input返回的值其实是一个str,如果只是单纯的拿到用户输入就直接打印就按照str打印即可,如果需要根据用户输入的内容进行算数运算,就需要把读到的str-》int

二、Python 运算符:灵活丰富 vs C++ 的基础通用

1. 算术运算符:简化运算 vs C++ 的基础实现

运算符是对数据进行运算的符号,Python 在 C++ 基础运算符的基础上,新增了特有的运算符(如成员运算符、身份运算符),并简化了部分运算逻辑。

|------|-------------------|----------------|------------------------------------|
| 运算符 | Python 用法 | C++ 用法 | 核心差异 |
| + | 加法 / 字符串拼接 | 加法 / 字符串拼接 | 一致 |
| - | 减法 | 减法 | 一致 |
| * | 乘法 / 字符串重复 | 乘法 | Python 支持"a"*3 → "aaa",C++ 需循环实现 |
| / | 浮点数除法(10/3=3.333) | 整数除法(10/3=3) | C++ 整数相除取整,Python 始终返回浮点数 |
| // | 整除(10//3=3) | 无 | Python 专属,向下取整,负数也适用(-10//3=-4) |
| % | 取模(10%3=1) | 取模 | Python 负数取模更合理(-10%3=2),C++ 返回 - 1 |
| ** | 幂运算(2**3=8) | 无(需 pow (2,3)) | Python 专属,无需调用函数 |

python 复制代码
a = 10
print(10 / 3)    # 3.3333333333333335
print(10 // 3)   # 3
print(-10 // 3)  #-4
print(2 ** 3)    # 8
print("a" * 3)   # "aaa"
print(10 % 3)    #1
print(-10 % 3)   # 2
cpp 复制代码
#include <iostream>
#include <cmath>
using namespace std;

int main() 
{
    cout << 10 / 3 << endl;    // 3(整数除法)
    cout << (double)10 / 3 << endl;  // 3.33333
    cout << pow(2, 3) << endl;  // 8(需调用pow函数)
    // C++无字符串重复运算符,需循环
    string s = "a";
    for (int i = 0; i < 2; i++) s += "a";
    cout << s << endl;  // "aaa"
    cout << -10 % 3 << endl;  // -1
    return 0;
}

2. 赋值运算符:更灵活 vs C++ 的基础赋值

赋值运算符用于给变量赋值,Python 支持链式赋值、解包赋值,C++ 仅支持基础赋值和复合赋值。

python 复制代码
# Python赋值运算符
# 链式赋值
a = b = 10
print(a, b)  # 10 10
# 解包赋值
x, y = 10, 20
print(x, y)  # 10 20
# 列表解包
nums = [1,2,3]
a,b,c = nums
print(a,b,c)  # 1 2 3
# 复合赋值
a = 10
a += 5  # 等价于a = a+5
print(a)  # 15
a /= 3   # 等价于a = a/3 → 5.0
print(a)  # 5.0
cpp 复制代码
// C++赋值运算符
#include <iostream>
using namespace std;

int main() {
    // 链式赋值
    int a = b = 10;
    cout << a << " " << b << endl;  // 10 10
    // C++无解包赋值,需单独赋值
    int x = 10, y = 20;
    cout << x << " " << y << endl;  // 10 20
    // 复合赋值
    int c = 10;
    c += 5;
    cout << c << endl;  // 15
    c /= 3;  // 等价于c = c/3 → 5(整数除法)
    cout << c << endl;  // 5
    return 0;
}

3. 比较运算符:新增身份判断 vs C++ 的基础比较

比较运算符用于判断两个值的关系,返回布尔值(True/False),Python 新增了is/is not(身份判断),C++ 无对应实现

python 复制代码
a = 10
b = 10
c = [1,2,3]
d = [1,2,3]
print(a == b)  # True(值相等)
print(a is b)  # True(小整数池,内存地址相同)
print(c == d)  # True(值相等)
print(c is d)  # False(不同列表对象,内存地址不同)
print(c is not d)  # True
cpp 复制代码
#include <iostream>
#include <vector>
using namespace std;

int main() 
{
    int a = 10, b = 10;
    vector<int> c = {1,2,3}, d = {1,2,3};
    cout << (a == b) << endl;  // 1(true)
    // C++判断内存地址需用&
    cout << (&a == &b) << endl;  // 0(false)
    // C++无法直接比较vector内容,需循环
    bool equal = true;
    for(int i=0; i<3; i++) {
        if(c[i] != d[i]) {
            equal = false;
            break;
        }
    }
    cout << equal << endl;  // 1(true)
    return 0;
}

4. 逻辑运算符:语法更直观 vs C++ 的符号表示

逻辑运算符用于组合条件判断,Python 用英文单词,C++ 用符号,逻辑一致(均支持短路求值),对于and操作,如果左侧表达式为False,那整体的值一定是False,右侧不必求值;对于or操作来说,如果左侧表达式为True,那整体的值一定是True,右侧不必求值。

如下没有报错

python 复制代码
a = 10
b = 20
print(a > b and 10 / 0 == 1)

5. 特殊运算符:Python 专属(C++ 无对应)

Python 新增了两类实用运算符,C++ 需通过函数 / 循环实现

成员运算符in/not in,判断元素是否在容器中

身份运算符is/is not,判断两个变量是否指向同一个对象,小整数池,内存地址相同

python 复制代码
nums = [1,2,3]
print(2 in nums)
print(4 not in nums)
a = 10
b = 10
print(a is b)
print(a is not b)

三、总结

  • 输入输出 :Python 的input()/print()无需关注类型和格式,简洁易用;C++ 的cin/cout/scanf需强类型匹配,更严谨但代码量更大。
  • 运算符
    • Python 新增//(整除)、**(幂)、in/not in(成员)、is/is not(身份)等便捷运算符,简化开发;
    • C++ 算术运算符更基础,需借助函数(如pow)或循环实现 Python 的便捷功能;
    • 逻辑运算符 Python 用英文单词(and/or/not),C++ 用符号(&&/||/!),逻辑一致。
  • 设计思路:Python 追求 "极简" 和 "人性化",适合快速开发;C++ 追求 "底层控制" 和 "性能",适合高性能场景。

学习建议

  • 新手优先掌握 Python 的输入输出(f-string 格式化、多输入处理)和核心运算符(算术、比较、逻辑);
  • 对比 C++ 学习能更清晰理解 "动态类型"(Python)和 "静态类型"(C++)的差异;
  • 实际开发中,Python 的in/is、f-string 等特性能大幅提升开发效率,建议重点掌握。
相关推荐
ZHOUPUYU5 小时前
PHP 8.3网关优化:我用JIT将QPS提升300%的真实踩坑录
开发语言·php
寻寻觅觅☆9 小时前
东华OJ-基础题-106-大整数相加(C++)
开发语言·c++·算法
YJlio9 小时前
1.7 通过 Sysinternals Live 在线运行工具:不下载也能用的“云端工具箱”
c语言·网络·python·数码相机·ios·django·iphone
fpcc9 小时前
并行编程实战——CUDA编程的Parallel Task类型
c++·cuda
l1t10 小时前
在wsl的python 3.14.3容器中使用databend包
开发语言·数据库·python·databend
今天只学一颗糖10 小时前
1、《深入理解计算机系统》--计算机系统介绍
linux·笔记·学习·系统架构
青云计划10 小时前
知光项目知文发布模块
java·后端·spring·mybatis
赶路人儿10 小时前
Jsoniter(java版本)使用介绍
java·开发语言
testpassportcn10 小时前
AWS DOP-C02 認證完整解析|AWS DevOps Engineer Professional 考試
网络·学习·改行学it