Python 基础语法精讲:数据类型、运算符与输入输出

Python 作为一门简洁易用的编程语言,其基础语法是入门的关键。本文将系统讲解 Python 的基本数据类型运算符与表达式 以及输入输出方法,帮助初学者夯实编程基础。

一、 基本数据类型

Python 的基本数据类型主要分为数字类型字符串类型,支持灵活的类型转换操作。

1. 数字类型

数字类型包含整数、浮点数、布尔类型和复数四种,可表示任意大小的数值。

  • 整数 :支持十进制、二进制(0b开头)、八进制(0o开头)、十六进制(0x开头),例如 100b10100o120xA
  • 浮点数 :即小数,支持科学计数法,例如 3.141.2e-5。注意浮点数运算存在不确定尾数,如 0.1 + 0.2 = 0.30000000000000004
  • 布尔类型 :作为整数的子类,True等价于 1,False等价于 0,可参与数值运算,例如 True + 2 = 3
  • 复数 :格式为 a + bja是实部,b是虚部,例如 2.3 + 4.5j

2. 字符串类型

字符串是连续的字符序列,可用三种引号定义:

  • 单引号 / 双引号:用于单行字符串,例如 'hello'"python"
  • 三引号:用于多行字符串,例如
python 复制代码
target = '''这是一个
多行字符串'''
  • 转义字符 :使用反斜杠\实现特殊功能,常用的有\n(换行)、\t(制表符)、\\(反斜杠)等。

3. 数据类型转换

Python 提供内置函数实现类型转换,常用函数如下:

函数 作用
int(x) 将 x 转为整数
float(x) 将 x 转为浮点数
str(x) 将 x 转为字符串
eval(x) 计算字符串中的有效表达式

示例:计算矩形面积

python

运行

python 复制代码
# 输入整数
width = int(input())
length = int(input())
print(width * length)

# 输入浮点数
width = float(input())
length = float(input())
print(round(width * length, 2)) # 保留2位小数

二、 运算符与表达式

Python 支持多种运算符,按功能可分为算术、赋值、比较、逻辑、位运算符等,运算符存在优先级和结合性。

1. 算术运算符

用于数值计算,常用运算符如下:

运算符 说明 示例
+ 4 + 5 = 9
- 7 - 10 = -3
* 4 * 5 = 20
/ 除(结果为浮点数) 10 / 4 = 2.5
// 整除(向下取整) 10 // 4 = 2
% 取模(余数) 10 % 4 = 2
** 幂运算 10 ** 2 = 100

特殊说明

  • 取模运算结果的符号与除数一致,例如 -11 % 4 = 1
  • 幂运算支持开方,例如 3 ** 0.5 表示计算 3 的平方根。

2. 赋值运算符

用于为变量赋值,支持复合赋值,常用运算符如下:

运算符 示例 等价形式
= a = 5 -
+= a += 3 a = a + 3
-= a -= 3 a = a - 3

注意 :赋值语句左侧必须是变量,不能是表达式,例如 a + b = c 是非法的。

3. 比较运算符

用于比较两个对象的大小或相等性,结果为布尔值True/False,支持运算符连用。

运算符 说明 示例
> 大于 4 > 5 → False
< 小于 4 < 5 → True
== 等于 4 == 5 → False
!= 不等于 4 != 5 → True

示例

python

运行

python 复制代码
print(1 < 3 < 5) # 等价于1 < 3 and 3 < 5 → True
print([1,2,3] < [1,2,4]) # 列表比较 → True

4. 逻辑运算符

用于布尔值运算,包括andornot,具有惰性求值特性。

运算符 说明
and 逻辑与,全真则真
or 逻辑或,一真则真
not 逻辑非,取反

惰性求值示例

python

运行

python 复制代码
print(3 > 5 and a > 3) # 左侧为False,右侧不计算 → False
print(3 < 5 or a > 3) # 左侧为True,右侧不计算 → True

5. 位运算符

仅用于整数,按二进制位进行运算,例如 3 << 2(左移 2 位,结果为 12)、3 & 7(按位与,结果为 3)。

6. 运算符优先级与结合性

  • 优先级 :不同运算符的执行顺序,例如先乘除后加减,3 + 4 * 5 = 23
  • 结合性 :优先级相同时的执行顺序,大部分运算符为左结合 (从左到右),赋值、幂运算符为右结合(从右到左)。

三、 基本输入与输出

输入输出是程序与用户交互的核心,Python 通过input()print()函数实现。

1. 输入:input () 函数

input()函数用于接收用户输入,返回值为字符串类型,语法格式:

python

运行

python 复制代码
变量 = input("提示信息")

示例

python

运行

python 复制代码
# 输入单个值
name = input("请输入姓名:")

# 输入多个值(逗号分隔)
a, b, c = eval(input("请输入三个数:"))

2. 输出:print () 函数

print()函数用于输出内容,支持多种格式控制,语法格式:

python

运行

python 复制代码
print(*objects, sep=' ', end='\n', file=sys.stdout)
  • sep:多个输出对象的分隔符,默认空格。
  • end:输出结束符,默认换行。
  • file:输出目标,默认控制台,可指定文件。

示例

python

运行

python 复制代码
# 不换行输出
print("Hello", end='')
print("World") # 输出:HelloWorld

# 自定义分隔符
print(1, 2, 3, sep=':') # 输出:1:2:3

# 输出到文件
with open('test.txt', 'w') as f:
    print("Hello Python", file=f)

3. 格式化输出

Python 支持三种格式化输出方式,满足不同场景需求。

(1)% 格式化

类似 C 语言的格式化方式,常用格式符有%d(整数)、%f(浮点数)、%s(字符串)。

python

运行

python 复制代码
name = "小明"
age = 13
print("姓名:%s,年龄:%d" % (name, age))
(2)format () 方法

使用{}作为占位符,支持灵活的格式控制。

python

运行

python 复制代码
a, b, c = 3, 5, 8
print("{}x + {}y + {} = 0".format(a, b, c)) # 输出:3x + 5y + 8 = 0
(3)f-string 格式化(Python3.6+)

在字符串前加f,使用{变量/表达式}直接嵌入内容,简洁高效。

python

运行

python 复制代码
name = "小明"
age = 13
print(f"姓名:{name},年龄:{age}")

四、 实战案例

案例 1:一元二次方程求解

求解方程 ax2+bx+c=0 的实根,代码如下:

python

运行

python 复制代码
a, b, c = eval(input("请输入a,b,c:"))
delta = b ** 2 - 4 * a * c
if delta > 0:
    x1 = (-b + delta ** 0.5) / (2 * a)
    x2 = (-b - delta ** 0.5) / (2 * a)
    print(f"两个实根:{x1:.2f}, {x2:.2f}")
elif delta == 0:
    x = -b / (2 * a)
    print(f"一个实根:{x:.2f}")
else:
    print("无实根")

案例 2:恺撒密码加密

恺撒密码通过将字母后移 3 位实现加密,代码如下:

python

运行

python 复制代码
ptxt = input("请输入明文:")
for p in ptxt:
    if 'a' <= p <= 'z':
        print(chr(ord('a') + (ord(p) - ord('a') + 3) % 26), end='')
    elif 'A' <= p <= 'Z':
        print(chr(ord('A') + (ord(p) - ord('A') + 3) % 26), end='')
    else:
        print(p, end='')

五、 总结

本文详细介绍了 Python 的基础语法核心内容,包括基本数据类型的定义与转换、各类运算符的使用规则、输入输出函数的灵活运用。掌握这些知识是编写 Python 程序的基础,后续可进一步学习流程控制、函数等进阶内容。

相关推荐
哈基咪怎么可能是AI1 小时前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
Re_zero2 小时前
线上日志被清空?这段仅10行的 IO 代码里竟然藏着3个毒瘤
java·后端
洋洋技术笔记2 小时前
Spring Boot条件注解详解
java·spring boot
十日十行18 小时前
Linux和window共享文件夹
linux
程序员清风20 小时前
程序员兼职必看:靠谱软件外包平台挑选指南与避坑清单!
java·后端·面试
皮皮林55121 小时前
利用闲置 Mac 从零部署 OpenClaw 教程 !
java
Sinclair21 小时前
简单几步,安卓手机秒变服务器,安装 CMS 程序
android·服务器
木心月转码ing1 天前
WSL+Cpp开发环境配置
linux
华仔啊1 天前
挖到了 1 个 Java 小特性:var,用完就回不去了
java·后端
SimonKing1 天前
SpringBoot整合秘笈:让Mybatis用上Calcite,实现统一SQL查询
java·后端·程序员