数据分析笔记08:Python编程基础-数据类型与变量

数据分析笔记08:Python编程基础-数据类型与变量

注释

注释的作用

注释是对代码的解释说明,帮助程序员和他人理解代码的功能和逻辑。

重要特性:

  • 运行代码时会自动跳过注释语句。
  • 不影响程序执行。
  • 用于解释变量含义、函数功能等。

如何添加注释

单行注释:使用#符号。

复制代码
# 这是一个注释
print(2222)  # 打印四个2

快捷键:

  • 添加/删除注释:Ctrl + /。
  • 选中多行后按快捷键可批量注释。

识别注释的关键:任何以#开头的语句都是注释,无论内容是汉字、数字还是字母。运行时会被自动跳过。

数据类型

数据类型的含义

数据类型是数据的表现形式,计算机通过数据类型来区分不同种类的数据(数字、字母、汉字等)。

查询数据类型的函数:type()。

复制代码
type(变量名)  # 返回该变量的数据类型

四种基本数据类型

  1. 整型(int): 定义:十进制整数的统称,如1、2、3、120、-60等。 应用场景:年龄、序号、计数等。

    number = 15
    print(number) # 输出:15
    print(type(number)) # 输出:<class 'int'>

  2. 布尔型(bool): 定义:只有两个值的数据类型。

    • True(真):表示成立、正确。
    • False(假):表示不成立、错误。 应用场景:条件判断、比较运算。

    a = True
    b = False
    print(type(a)) # 输出:<class 'bool'>

布尔值的数字表示:

  • True = 1。
  • False = 0。

判断规则:

  • 非零且非空 → True。

  • 零或空 → False。

    a = 0.8
    b = bool(a)
    print(b) # 输出:True(非零)

    a = 0
    b = bool(a)
    print(b) # 输出:False(零)

    a = ''
    b = bool(a)
    print(b) # 输出:False(空)

  1. 字符串(str): 定义:用来表示文本信息的数据类型。 包含内容:字母、汉字、数字(加引号后)、特殊字符等。 三种表示方法:

    方法 表示 示例
    单引号 '内容' 'Alice'
    双引号 "内容" "Alice"
    三引号 '''内容''' '''Alice'''

    name = 'Alice'
    address = "枫叶路92号"
    date = '5678'

    print(type(name)) # 输出:<class 'str'>
    print(type(address)) # 输出:<class 'str'>
    print(type(date)) # 输出:<class 'str'>

识别字符串的关键:只要数据外面套了引号(单引号、双引号或三引号),无论内容是什么,都是字符串类型。

字符串的拼接:

复制代码
a = '2' + '2'
print(a)  # 输出:22(字符串拼接,不是数学运算)

a = '2' + '-' + '2'
print(a)  # 输出:2-2
  1. 浮点型(float): 定义:小数类型,用于表示更精确的数值。 应用场景:需要精确计算的数据,如体重、价格、科学计算等。

    v1 = 4.56
    print(v1) # 输出:4.56
    print(type(v1)) # 输出:<class 'float'>

数据类型总结表

数据类型 英文名称 标识 示例 常见用途
整型 Integer int 15, -6, 120 年龄、序号、计数
布尔型 Boolean bool True, False 条件判断、逻辑运算
字符串 String str 'Hello', "你好" 文本信息、名称
浮点型 Float float 4.56, 0.75 小数、精确计算

数据类型转换

转换函数

Python提供了内置函数进行类型转换:

函数 功能 示例
int() 转换为整型 int('456') → 456
str() 转换为字符串 str(456) → '456'
float() 转换为浮点型 float(99) → 99.0
bool() 转换为布尔型 bool(1) → True

字符串转整型

复制代码
s = '456'
i = int(s)
print(i)         # 输出:456
print(type(i))   # 输出:<class 'int'>

重要限制:只有纯数字的字符串才能转换为整型。

  • int('456') 成功。
  • int('DEF') 报错。
  • int('你我他') 报错。

整型转字符串

复制代码
i = 456
s = str(i)
print(s)         # 输出:456
print(type(s))   # 输出:<class 'str'>

整型转浮点型

复制代码
a = 99
f = float(a)
print(f)  # 输出:99.0

特点:整数转浮点型时,会在后面加上.0。

浮点型转整型(向下取整)

复制代码
f = 99.88
a = int(f)
print(a)  # 输出:99(不是100!)

向下取整规则:Python的int()函数采用向下取整,直接截断小数部分,不进行四舍五入。

  • int(99.22) → 99。
  • int(99.88) → 99。

自动类型转换

Python在某些情况下会自动进行类型转换。

示例1:布尔型与整型运算。

复制代码
a = 150
b = True  # True = 1
c = a + b
print(c)  # 输出:151(150 + 1)

b = False  # False = 0
c = a + b
print(c)  # 输出:150(150 + 0)

示例2:整型与浮点型运算。

复制代码
result = 12 + 23.4
print(result)  # 输出:35.4
# 整型12自动转换为12.0,然后进行运算

运算符

算术运算符

运算符 描述 示例 结果
+ 加法 15 + 25 40
- 减法 15 - 25 -10
* 乘法 15 * 25 375
/ 除法 15 / 25 0.6
// 整除(取整) 10 // 3 3
% 取余数 10 % 3 1
** 幂次方 3 ** 2 9

特殊运算:字符串重复。

复制代码
a = '-' * 60
print(a)  # 输出:60个横线

整除 vs 取余:

  • 整除(//):返回除法的整数部分,10 // 3 = 3。
  • 取余(%):返回除法的余数部分,10 % 3 = 1(10 ÷ 3 = 3 余 1)。

比较运算符

运算符 描述 示例 结果
== 等于 3 == 3 True
!= 不等于 3 != 3 False
> 大于 4 > 3 True
< 小于 3 < 4 True
>= 大于等于 4 >= 4 True
<= 小于等于 3 <= 4 True

重要区别:

  • 单个等号=:赋值运算符 a = 15(把15赋值给a)。
  • 双等号==:比较运算符 a == 15(判断a是否等于15)。

返回值:比较运算符返回布尔值(True或False)。

复制代码
print(3 == 3)   # 输出:True
print(3 != 3)   # 输出:False

逻辑运算符

and(且): X和Y都要成立,结果才为True。

复制代码
print(3 == 3 and 5 == 5)   # 输出:True(两个都成立)
print(3 == 3 and 5 != 5)   # 输出:False(一个不成立)

应用场景:登录验证。

复制代码
# 账号和密码都正确才能登录
if 输入账号 == 存储账号 and 输入密码 == 存储密码:
    登录成功

or(或): X和Y只要有一个成立,结果就为True。

复制代码
print(3 == 3 or 5 != 5)   # 输出:True(有一个成立)
print(3 != 3 or 5 != 5)   # 输出:False(两个都不成立)

应用场景:奖励条件。

复制代码
# 语文或数学有一科达到95分就有奖励
if 语文成绩 >= 95 or 数学成绩 >= 95:
    获得奖励

not(非): 取反操作。

复制代码
x = True
print(not x)   # 输出:False

x = False
print(not x)   # 输出:True

逻辑运算符总结表

运算符 逻辑 示例 说明
and X and Y X和Y都为True,结果才为True
or X or Y X或Y有一个为True,结果就为True
not not X X为True则返回False,X为False则返回True

赋值运算符

基本赋值:=。

复制代码
a = 15  # 将15赋值给变量a

复合赋值运算符:

运算符 等价于 示例
+= a = a + b a += b
-= a = a - b a -= b
*= a = a * b a *= b
/= a = a / b a /= b
复制代码
a = 2
b = 3
a += b  # 等价于 a = a + b
print(a)  # 输出:5

复合赋值的优势:简化代码,减少重复,提高可读性。a += b 比 a = a + b 更简洁。

成员运算符

in(在...中): 判断元素是否包含在序列中。

复制代码
s = 'FGHIJ'
print('F' in s)   # 输出:True
print('K' in s)   # 输出:False

not in(不在...中): 判断元素是否不在序列中。

复制代码
s = 'FGHIJ'
print('K' not in s)   # 输出:True
print('F' not in s)   # 输出:False

格式化输出

为什么需要格式化输出

普通输出过于死板,格式化输出可以:

  • 统一输出格式。
  • 动态插入变量值。
  • 提高代码可读性。
  • 使输出更加美观。

三种格式化方法

方法一:百分号占位符(%)。 占位符类型:

  • %s:字符串。

  • %d:整数。

  • %f:浮点数。

    age = 22
    name = 'Bob'
    weight = 80.5
    student_id = 2

    单个变量

    print('我的名字是%s' % name)

    输出:我的名字是Bob

    print('我的学号是%d' % student_id)

    输出:我的学号是2

    print('我的体重是%f公斤' % weight)

    输出:我的体重是80.500000公斤

    多个变量(使用元组)

    print('我的名字是%s,今年%d岁' % (name, age))

    输出:我的名字是Bob,今年22岁

方法二:format()方法。 使用大括号 {} 作为占位符。

复制代码
name = 'Bob'
weight = 80.5
age = 22

# 单个变量
print('我的名字是{}'.format(name))
# 输出:我的名字是Bob

print('我的体重是{}公斤'.format(weight))
# 输出:我的体重是80.5公斤

# 多个变量
print('我的名字是{},今年{}岁'.format(name, age))
# 输出:我的名字是Bob,今年22岁

方法三:f-string(推荐)。 Python 3.6+ 支持,最简洁的方式。

复制代码
name = 'Bob'
age = 22
weight = 80.5

# 直接在大括号中写变量名
print(f'我的名字是{name}')
# 输出:我的名字是Bob

print(f'我的体重是{weight}公斤')
# 输出:我的体重是80.5公斤

print(f'我的名字是{name},今年{age}岁')
# 输出:我的名字是Bob,今年22岁

三种方法对比

方法 语法 优点 缺点
%占位符 '%s' % var 兼容性好 需要记忆不同类型的占位符
format() '{}'.format(var) 统一使用{},灵活性高 语法较长
f-string f'{var}' 最简洁直观 需要Python 3.6+

推荐使用f-string:语法最简洁,可读性最高,是目前最推荐的格式化方法。

输入与输出

输出(print)

基本用法:

复制代码
print('Hello Python')  # 输出字符串
print(456)             # 输出数字
print(变量名)           # 输出变量值

输入(input)

功能:接收用户从键盘输入的数据。

重要特性:

  1. 程序执行到input()时会进入等待状态。
  2. 等待用户输入数据。
  3. 用户按下回车键后继续执行。
  4. input()接收的数据默认为字符串类型。

基本语法:

复制代码
变量名 = input('提示信息')

示例:

复制代码
password = input('请输入您的密码:')
print(f'您输入的密码是{password}')
print(type(password))  # 输出:<class 'str'>

重要提醒:input()接收的数据永远是字符串类型! 如果需要数字类型,必须进行类型转换:age = int(input('请输入年龄:'))。

类型转换示例:

复制代码
# 接收整数
age = int(input('请输入年龄:'))
print(f'明年你{age + 1}岁')

# 接收浮点数
height = float(input('请输入身高(米):'))
print(f'你的身高是{height}米')

总结

变量

定义:用字母代替具体数值,方便重复使用和修改。

赋值:使用等号=。

复制代码
number = 15  # 将15赋值给变量number

特点:

  • 可变性:可以重复赋值。
  • 遵循最新赋值:变量的值为最后一次赋值的结果。

vs 常量:

  • 变量:可以改变(如:number = 15,后面可以改为number = 16)。
  • 常量:固定不变(如:数字15永远是15)。

语句执行顺序

重要原则:从右向左看赋值语句。 a = a + b

  1. 先计算右边:a + b。
  2. 再赋值给左边:将结果赋给a。

Python代码执行顺序:从上到下,从右向左。

PyCharm提示

变量名重复警告:

  • 相同变量名重复赋值会显示黄色警告。
  • 提醒开发者可能存在变量名冲突。
  • 建议每个变量名有唯一用途。

数据类型转换要点

可以转换:

  • 数字字符串 → 整型:int('456')。
  • 整型 → 字符串:str(456)。
  • 整型 → 浮点型:float(99)。
  • 浮点型 → 整型:int(99.88)(向下取整)。

不能转换:

  • 字母字符串 → 整型:int('DEF')会报错。
  • 汉字字符串 → 整型:int('你好')会报错。
相关推荐
前端付豪2 小时前
AI 数学辅导老师项目构想和初始化
前端·后端·python
用户0332126663672 小时前
将 PDF 文档转换为图片【Python 教程】
python
爱可生开源社区2 小时前
某马来西亚游戏公司如何从 SQL Server 迁移至 OceanBase?
数据库
悟空爬虫3 小时前
UV实战教程,我啥要从Anaconda切换到uv来管理包?
python
dev派3 小时前
AI Agent 系统中的常用 Workflow 模式(1)
python·langchain
小瓦码J码4 小时前
PostgreSQL表名超长踩坑记
数据库·postgresql
yhyyht4 小时前
InfluxDB入门记录(三)flux-dsl
数据库·后端
明月_清风5 小时前
从“能用”到“专业”:构建生产级装饰器与三层逻辑拆解
后端·python
曲幽15 小时前
数据库实战:FastAPI + SQLAlchemy 2.0 + Alembic 从零搭建,踩坑实录
python·fastapi·web·sqlalchemy·db·asyncio·alembic
用户83562907805119 小时前
Python 实现 PowerPoint 形状动画设置
后端·python