【Python】基础语法入门:变量,数据类型,运算符

文章目录

一、基础用法

Python最直观的用法就是作为计算器进行算术运算。

python 复制代码
print(1 + 2 - 3)  # 输出:0
print(1 + 2 / 3)  # 输出:1.6666666666666665(除法返回小数)

这里有个关键差异:和C/Java不同,Python中2/3会返回小数(而非截断小数部分),更符合日常计算直觉。

二、变量与类型

1. 变量的定义与使用

(1)定义变量

变量定义语法极简:变量名 = 数据

python 复制代码
# 定义变量存储平均值
avg = (67.5 + 89.0 + 12.9 + 32.2) / 4
print(avg)  # 输出:50.4

(2)变量命名规则

  • 硬性规则
    1. 由字母、数字、下划线(_)组成,不能包含空格或特殊字符(如!@)。
    2. 不能以数字开头(比如123avg是非法的,avg123是合法的)。
    3. 不能与Python关键字重复(如ifforprint等,这些是Python自带的"保留字")。
    4. 大小写敏感(numNum是两个不同的变量)。
  • 软性建议
    1. 用有描述性的单词(比如student_score表示学生分数,而非xy)。
    2. 多单词用"驼峰命名法"(首单词小写,后续单词首字母大写,如totalCountpersonInfo)。

(3)变量的修改与赋值

Python中修改变量无需重新声明,直接用=覆盖即可;也可以将一个变量的值赋给另一个变量:

python 复制代码
a = 10
print(a)  # 输出:10

# 修改变量a的值
a = 20
print(a)  # 输出:20

# 将a的值赋给b
b = a
print(b)  # 输出:20

2. 变量的类型

变量存储的数据有不同类型,Python会在赋值时自动确定类型 (无需像C/Java那样显式声明intstring),常见类型如下:

类型 说明 示例 常用操作
整数(int) 无范围限制的整数(内存足够即可) a = 10b = 1000000000 +-*/等算术运算
浮点数(float) 双精度小数(相当于C/Java的double) a = 0.5b = 67.5 同整数,注意精度问题
字符串(str) 文本数据,用单引号(')或双引号(")包裹 a = 'hello'b = "world" +(拼接)、len()(求长度)
布尔(bool) True(真)、False(假) a = Trueb = 10 > 20 逻辑判断

(1)查看变量类型:type()函数

type(变量名)可查看变量的具体类型:

python 复制代码
a = 10
print(type(a))  # 输出:<class 'int'>

b = 0.5
print(type(b))  # 输出:<class 'float'>

c = 'hello'
print(type(c))  # 输出:<class 'str'>

d = True
print(type(d))  # 输出:<class 'bool'>

(2)字符串的常用操作

  1. 求长度:len()
python 复制代码
a = 'hello'
print(len(a))  # 输出:5(包含5个字符)
  1. 字符串拼接:+
python 复制代码
b = 'world'
print(a + ' ' + b)  # 输出:hello world(拼接时可加空格)

注意: 字符串不能和整数/浮点数直接相加

python 复制代码
# print('年龄:' + 20)  # 报错!需先转换类型
print('年龄:' + str(20))  # 输出:年龄:20(str()将整数转为字符串)

(3)Python的动态类型特性

和C/Java不同,Python变量的类型可以在程序运行中动态变化(这是Python的核心特性之一):

python 复制代码
a = 10
print(type(a))  # 输出:<class 'int'>(初始为整数)

a = 'hello'
print(type(a))  # 输出:<class 'str'>(后续变为字符串)

这种特性让代码更灵活,但大型项目中需注意变量类型一致性,避免混乱。

3. 为什么需要数据类型?

  1. 决定内存占用 :不同类型占用的内存空间不同(比如float占8个字节,int根据数值大小动态调整)。
  2. 限制操作范围 :不同类型支持的运算不同(比如int/float可以做乘法,str不能做乘法;str可以用len()求长度,int不能)。

三、注释

注释是不参与程序执行的代码说明,目的是让自己和他人能快速理解代码逻辑------好的注释是代码的"灵魂",也是编程规范的核心要求。

1. 注释的作用

python 复制代码
# 计算4个分数(67.5, 89.0, 12.9, 32.2)的方差
# 方差公式:(每项-平均值)²求和 ÷ (项数-1)
avg = (67.5 + 89.0 + 12.9 + 32.2) / 4
total = (67.5 - avg)**2 + (89.0 - avg)**2 + (12.9 - avg)**2 + (32.2 - avg)**2
result = total / 3
print(result)  # 输出:924.3566666666667

如果没有注释,后续阅读代码时很难快速知道这是计算方差的逻辑------注释不仅方便他人,也能帮三个月后的自己回忆代码用途。

2. Python注释的两种语法

(1)单行注释

#开头,#右侧的内容均为注释,适用于简短说明:

python 复制代码
# 这是单行注释,用于解释单行代码
num = 10  # 也可以写在代码右侧(注释代码功能)

(2)文档字符串(多行注释)

用三引号("""''')包裹,支持多行内容,适用于文件、函数或类的详细说明:

python 复制代码
"""
这是文档字符串(多行注释)
作用:计算两个整数的和
参数:无
返回值:打印求和结果
"""
a = 10
b = 20
print(a + b)

3. 注释规范

  1. 内容准确:注释必须和代码逻辑一致,代码修改后需同步更新注释(避免"注释骗人")。
  2. 篇幅合理 :不用过于精简(比如# 计算和足够,不用只写# 和),也不用长篇大论(避免注释比代码还长)。
  3. 语言规范:国内项目优先用中文注释(外企可例外),避免中英文混杂。
  4. 积极向上:注释中不能包含负能量或不文明内容。

四、输入输出

程序需要和用户交互:用户向程序传递信息(输入 ),程序向用户展示结果(输出),最基础的交互方式是通过控制台。

1. 输出:print()函数

print()是Python内置的输出函数,可打印字符串、变量、表达式结果等,支持多种格式:

python 复制代码
# 1. 打印字符串
print('Hello Python!')  # 输出:Hello Python!

# 2. 打印变量
num = 10
print(num)  # 输出:10

# 3. 打印表达式结果
print(10 + 20)  # 输出:30

# 4. 混合输出(f-string语法,最常用)
name = '小明'
age = 20
print(f'姓名:{name},年龄:{age}')  # 输出:姓名:小明,年龄:20

其中f-string (前缀f+字符串+{变量/表达式})是Python3.6+的特性,简洁直观,推荐优先使用。

2. 输入:input()函数

input()是Python内置的输入函数,用于读取用户从控制台输入的内容,返回值为字符串类型

python 复制代码
# 基础用法:带提示信息的输入
name = input('请输入你的姓名:')
print(f'你好,{name}!')  # 输入:小明 → 输出:你好,小明!

# 注意:input()返回值是字符串,需转换类型才能做算术运算
num1 = input('请输入第一个整数:')
num2 = input('请输入第二个整数:')
# print(num1 + num2)  # 输入:10 20 → 输出:1020(字符串拼接,非加法)
print(int(num1) + int(num2))  # 输入:10 20 → 输出:30(int()转为整数)

3. 示例:输入4个小数,计算平均值

python 复制代码
# 输入4个小数
a = float(input('请输入第一个小数:'))
b = float(input('请输入第二个小数:'))
c = float(input('请输入第三个小数:'))
d = float(input('请输入第四个小数:'))

# 计算平均值
avg = (a + b + c + d) / 4

# 输出结果(保留2位小数,更美观)
print(f'四个数的平均值:{avg:.2f}')

运行效果:

复制代码
请输入第一个小数:10.2
请输入第二个小数:20.3
请输入第三个小数:30.4
请输入第四个小数:40.5
四个数的平均值:25.35

五、运算符

除了基础算术运算符,Python还提供关系运算符、逻辑运算符、赋值运算符等,覆盖各类运算场景,是实现复杂逻辑的核心。

1. 算术运算符

运算符 说明 示例 结果
+ 加法 10 + 20 30
- 减法 20 - 10 10
* 乘法 10 * 20 200
/ 除法(返回小数) 20 / 3 6.666...
% 取余数(模运算) 7 % 2 1
** 乘方 4 ** 2(4的平方) 16
// 取整除法(向下取整) 7 // 2-7 // 2 3、-4

注意:

  1. 除法/不能用0做除数,否则会报错(ZeroDivisionError)。
  2. 取整除法//是"向下取整",而非四舍五入(比如-7//2结果是-4,而非-3)。
  3. 乘方**支持小数次方(比如4**0.5是求平方根,结果为2.0)。

2. 关系运算符

返回值为布尔类型(True/False):

运算符 说明 示例 结果
< 小于 10 < 20 True
<= 小于等于 10 <= 10 True
> 大于 10 > 20 False
>= 大于等于 10 >= 20 False
== 等于 10 == 20 False
!= 不等于 10 != 20 True

注意

  1. 字符串比较:按"字典序"比较(类似英语词典的排序规则),逐字符对比ASCII码:
python 复制代码
   print('a' < 'b')  # True('a'的ASCII码小于'b')
   print('hello' < 'world')  # True(首字符'h' < 'w')
  1. 浮点数不能用==比较:浮点数在计算机中存储不精确,会有微小误差:
python 复制代码
   print(0.1 + 0.2 == 0.3)  # 输出:False(实际结果是0.3000000000000004)

正确做法:判断差值是否小于允许的误差范围(比如1e-6):

python 复制代码
   a = 0.1 + 0.2
   b = 0.3
   print(-1e-6 < (a - b) < 1e-6)  # 输出:True(误差在可接受范围)

3. 逻辑运算符

用于逻辑判断,操作数为布尔类型,返回值也为布尔类型:

运算符 说明 逻辑规则 示例 结果
and 并且(逻辑与) 两侧均为True才返回True 10 < 20 and 20 < 30 True
or 或者(逻辑或) 两侧均为False才返回False 10 > 20 or 20 < 30 True
not 逻辑取反 True→False,False→True not (10 < 20) False

特性:

  1. 短路求值 (提高效率):
    • and:左侧为False时,右侧不再执行(整体结果已确定为False)。
    • or:左侧为True时,右侧不再执行(整体结果已确定为True)。
python 复制代码
   print(10 > 20 and 10 / 0)  # 输出:False(右侧除以0未执行,无报错)
   print(10 < 20 or 10 / 0)   # 输出:True(右侧除以0未执行,无报错)
  1. 连续比较简化 :Python支持a < b < c的写法(等价于a < b and b < c),更直观:
python 复制代码
   print(10 < 20 < 30)  # 输出:True(无需写两个and)

4. 赋值运算符

运算符 说明 示例 等价写法
= 基础赋值 a = 10 -
+= 加法赋值 a += 2 a = a + 2
-= 减法赋值 a -= 2 a = a - 2
*= 乘法赋值 a *= 2 a = a * 2
/= 除法赋值 a /= 2 a = a / 2
%= 取余赋值 a %= 2 a = a % 2
**= 乘方赋值 a **= 2 a = a ** 2
  1. 链式赋值:同时给多个变量赋相同值:
python 复制代码
   a = b = c = 10
   print(a, b, c)  # 输出:10 10 10
  1. 多元赋值:快速交换两个变量的值(无需临时变量):
python 复制代码
   a = 10
   b = 20
   a, b = b, a  # 交换a和b的值
   print(a, b)  # 输出:20 10

注意: Python中没有++(自增)、--(自减)运算符,如需自增/自减,用a += 1a -= 1即可。

六、练习

练习1:计算圆的面积

需求:输入圆的半径,计算并输出面积(π取3.14159)。

python 复制代码
pi = 3.14159
radius = float(input('请输入圆的半径:'))
area = pi * radius **2
print(f'圆的面积:{area:.2f}')  # 保留2位小数

练习2:判断成绩等级

需求:输入学生分数(0-100),判断等级:90+为A,80-89为B,70-79为C,60-69为D,60以下为E。

python 复制代码
score = float(input('请输入学生分数:'))
if score >= 90:
    grade = 'A'
elif score >= 80:
    grade = 'B'
elif score >= 70:
    grade = 'C'
elif score >= 60:
    grade = 'D'
else:
    grade = 'E'
print(f'成绩等级:{grade}')

练习3:计算两个数的最大公约数

需求:输入两个正整数,用辗转相除法计算最大公约数。

python 复制代码
# 辗转相除法
a = int(input('请输入第一个正整数:'))
b = int(input('请输入第二个正整数:'))
# 确保a > b
if a < b:
    a, b = b, a  # 交换a和b的值
while b != 0:
    remainder = a % b
    a = b
    b = remainder
print(f'最大公约数:{a}')
相关推荐
csbysj20202 小时前
PHP 数组排序
开发语言
2501_944521592 小时前
Flutter for OpenHarmony 微动漫App实战:底部导航实现
android·开发语言·前端·javascript·redis·flutter·ecmascript
Java程序员威哥2 小时前
使用Java自动加载OpenCV来调用YOLO模型检测
java·开发语言·人工智能·python·opencv·yolo·c#
xmRao2 小时前
Qt 结合 SDL2 实现 PCM 音频文件播放
开发语言·qt·pcm
Faker66363aaa2 小时前
YOLOv26樱桃缺陷检测与分类算法实现含Python源码_计算机视觉
python·yolo·分类
一个处女座的程序猿O(∩_∩)O2 小时前
Next.js 文件系统路由深度解析:从原理到实践
开发语言·javascript·ecmascript
炬火初现2 小时前
C++17特性(3)
开发语言·c++
煤炭里de黑猫2 小时前
Python 爬虫进阶:利用 Frida 逆向移动端 App API 以实现高效数据采集
开发语言·爬虫·python
草莓熊Lotso2 小时前
Linux 进程创建与终止全解析:fork 原理 + 退出机制实战
linux·运维·服务器·开发语言·汇编·c++·人工智能