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 程序的基础,后续可进一步学习流程控制、函数等进阶内容。

相关推荐
skywalk81632 小时前
走近科学:unbound dns域名服务器自己本地解析出现问题,寻求解决之道
运维·服务器·dns·unbound
zl_dfq2 小时前
Linux 之 【多线程】(pthread_xxx、轻量级进程、原生线程库、线程ID、__thread、线程栈、线程与信号、线程与程序替换)
linux
岁岁种桃花儿2 小时前
CentOS7 彻底卸载所有JDK/JRE + 重新安装JDK8(实操完整版,解决kafka/jps报错)
java·开发语言·kafka
AZ996ZA2 小时前
自学linux的第二十一天【DHCP 服务从入门到实战】
linux·运维·服务器·php
_OP_CHEN2 小时前
【Linux系统编程】(二十八)深入 ELF 文件原理:从目标文件到程序加载的完整揭秘
linux·操作系统·编译·c/c++·目标文件·elf文件
Web极客码2 小时前
WordPress博客关键词
服务器·wordpress·网站加速
roman_日积跬步-终至千里2 小时前
【Java并发】Java 线程池实战:警惕使用CompletableFuture.supplyAsync
java·开发语言·网络
毕设源码-钟学长2 小时前
【开题答辩全过程】以 基于Springboot的扶贫众筹平台为例,包含答辩的问题和答案
java·spring boot·后端
Fleshy数模2 小时前
MySQL 表创建全攻略:Navicat 图形化与 Xshell 命令行双模式实践
linux·mysql