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 等特性能大幅提升开发效率,建议重点掌握。
相关推荐
谙忆几秒前
图片CDN与边缘优化实战:缓存策略、图片处理型CDN与动态裁剪
java·spring·缓存
嘘嘘出差6 分钟前
Python 爬虫入门实战:爬取豆瓣电影 Top 250
开发语言·爬虫·python
猪头少年不会遇见算法学姐11 分钟前
Makefile快速上手笔记
linux·学习
爱写代码的倒霉蛋11 分钟前
实现协程的三种方式
开发语言·python
ltqvibe14 分钟前
怎么让本体语义变成可执行的智能体
java·人工智能·本体语义
javajenius30 分钟前
Masslynx 4.1安装包免费下载及详细安装教程
java·服务器·前端·其他
崖边看雾35 分钟前
记录Python学习——第一章环境安装下载(Windows)
windows·python·学习·pycharm
CS创新实验室1 小时前
NumPy数组的C风格和Fortran风格
c语言·开发语言·numpy
程序员吕洞宾1 小时前
开源多维表格SmartTable V1.6.1:工作流画布,让自动化工作流配置更直观、更方便
java·开源·自动化
我登哥MVP1 小时前
走进 Gang of Four 设计模式:访问者模式
java·设计模式·访问者模式·原型模式