Python02_变量和数据类型

张开发
2026/4/14 22:47:35 15 分钟阅读

分享文章

Python02_变量和数据类型
Python_02_变量和数据类型文章目录Python_02_变量和数据类型Python 基础知识问答手册第一章变量VariablesQ1什么是变量如何定义变量Q2Python变量命名有哪些规则Q3变量的值可以修改吗第二章数据类型Data TypesQ1Python有哪些基本数据类型Q2字符串有哪些定义方式Q3列表List和元组Tuple有什么区别Q4字典Dictionary是什么Q5集合Set有什么特点第三章运算符OperatorsQ1Python有哪些算术运算符Q2比较运算符有哪些Q3逻辑运算符如何使用Q4赋值运算符有哪些简写形式Q5运算符优先级是怎样的第四章输入和输出Input OutputQ1如何输出内容到屏幕Q2如何获取用户输入Q3如何读取和写入文件第五章数据类型转换Type ConversionQ1为什么要进行类型转换Q2如何进行显式类型转换强制转换Q3类型转换时可能遇到什么错误Q4什么是隐式类型转换Q5如何检查数据类型附录常见错误速查表Python 基础知识问答手册第一章变量VariablesQ1什么是变量如何定义变量A变量是用于存储数据的容器。在Python中变量不需要声明类型直接赋值即可创建。# 变量赋值nameAlice# 字符串age25# 整数height1.75# 浮点数is_studentTrue# 布尔值Q2Python变量命名有哪些规则A只能包含字母、数字和下划线a-z,A-Z,0-9,_不能以数字开头区分大小写name和Name是不同的变量不能使用Python关键字如if,for,class等建议使用小写字母和下划线的组合snake_case# 合法命名user_name张三_private私有MAX_SIZE100# 常量习惯用大写# 非法命名2name错误# SyntaxError: 不能以数字开头my-name错误# SyntaxError: 不能包含连字符class错误# SyntaxError: 不能使用关键字Q3变量的值可以修改吗A可以。Python是动态类型语言变量可以随时重新赋值甚至可以改变数据类型。x10# 整数xhello# 现在变成字符串x[1,2,3]# 现在变成列表第二章数据类型Data TypesQ1Python有哪些基本数据类型A类型名称示例说明int整数42,-10,0无大小限制float浮点数3.14,-0.5小数表示str字符串hello,world文本数据bool布尔值True,False逻辑判断NoneType空值None表示什么都没有# 查看数据类型type(42)# class inttype(3.14)# class floattype(hello)# class strtype(True)# class booltype(None)# class NoneTypeQ2字符串有哪些定义方式A# 单引号和双引号等价s1Hellos2World# 三引号用于多行字符串s3这是一个 多行字符串# 转义字符s4他说\你好\# 使用反斜杠转义s5It\s a book# 原始字符串不转义pathrC:\Users\name# 前缀r表示原始字符串Q3列表List和元组Tuple有什么区别A特性列表list元组tuple定义[1, 2, 3](1, 2, 3)或1, 2, 3可变性可变可增删改不可变创建后不能修改性能稍慢更快使用场景需要频繁修改的数据固定不变的数据如坐标、配置# 列表示例可变my_list[1,2,3]my_list[0]100# 修改元素my_list.append(4)# 添加元素# 元组示例不可变my_tuple(1,2,3)# my_tuple[0] 100 # TypeError: 不允许修改Q4字典Dictionary是什么A字典是键值对key-value的集合通过键来快速查找值。# 字典定义person{name:张三,age:25,city:北京}# 访问和修改print(person[name])# 张三person[age]26# 修改值person[job]工程师# 添加新键值对# 常用方法person.keys()# 所有键person.values()# 所有值person.items()# 所有键值对Q5集合Set有什么特点A集合是无序、不重复的元素集合支持数学集合运算。# 创建集合s1{1,2,3,3,3}# 自动去重结果为 {1, 2, 3}s2set([1,2,2,3])# 从列表创建# 集合运算a{1,2,3}b{3,4,5}a|b# 并集: {1, 2, 3, 4, 5}ab# 交集: {3}a-b# 差集: {1, 2}a^b# 对称差集: {1, 2, 4, 5}第三章运算符OperatorsQ1Python有哪些算术运算符A运算符描述示例结果加法5 38-减法5 - 32*乘法5 * 315/除法浮点5 / 22.5//整除5 // 22%取余5 % 21**幂运算2 ** 38# 特殊用法hello*3# hellohellohello 字符串重复[1,2]*2# [1, 2, 1, 2] 列表重复Q2比较运算符有哪些A运算符含义示例等于5 5→True!不等于5 ! 3→True大于5 3→True小于5 3→False大于等于5 5→True小于等于3 5→TrueQ3逻辑运算符如何使用A# and: 两个都为True才为TrueTrueandFalse# False# or: 至少一个为True就为TrueTrueorFalse# True# not: 取反notTrue# False# 实际应用age25income5000ifage18andincome3000:print(符合条件)Q4赋值运算符有哪些简写形式Ax10x5# 等同于 x x 5结果为 15x-3# 等同于 x x - 3结果为 12x*2# 等同于 x x * 2结果为 24x/4# 等同于 x x / 4结果为 6.0x//2# 等同于 x x // 2结果为 3.0x%2# 等同于 x x % 2结果为 1.0x**3# 等同于 x x ** 3结果为 1.0Q5运算符优先级是怎样的A从高到低依次为()括号最高优先级**幂运算*,/,//,%乘除相关,-加减,!,,等比较运算符not逻辑非and逻辑与or逻辑或最低优先级# 建议复杂表达式使用括号提高可读性result(23)*4**2/(11)# 结果为 40.0第四章输入和输出Input OutputQ1如何输出内容到屏幕A使用print()函数。# 基本输出print(Hello, World!)# 输出多个值默认用空格分隔print(姓名:,张三,年龄:,25)# 姓名: 张三 年龄: 25# 自定义分隔符和结尾print(A,B,C,sep-)# A-B-Cprint(Loading,end)# 不换行默认end\nprint(...)# 格式化输出f-string推荐name张三age25print(f我叫{name}今年{age}岁)# 我叫张三今年25岁# 格式化数字pi3.14159print(f圆周率:{pi:.2f})# 圆周率: 3.14保留2位小数Q2如何获取用户输入A使用input()函数。# 基本输入返回字符串nameinput(请输入你的名字: )print(f你好,{name}!)# 输入数字需要类型转换ageinput(请输入年龄: )# 输入: 25ageint(age)# 转换为整数print(f明年你{age1}岁)# 简洁写法heightfloat(input(请输入身高(米): ))⚠️注意input()获取的始终是字符串进行数学运算前必须转换类型。Q3如何读取和写入文件A# 写入文件withopen(test.txt,w,encodingutf-8)asf:f.write(第一行\n)f.write(第二行\n)# 读取文件withopen(test.txt,r,encodingutf-8)asf:contentf.read()# 读取全部print(content)# 逐行读取withopen(test.txt,r,encodingutf-8)asf:forlineinf:print(line.strip())# strip()去除换行符第五章数据类型转换Type ConversionQ1为什么要进行类型转换A不同数据类型之间不能直接运算需要转换为相同类型。例如字符串123不能直接与整数100相加。Q2如何进行显式类型转换强制转换A使用类型转换函数函数说明示例int()转换为整数int(123)→123float()转换为浮点数float(3.14)→3.14str()转换为字符串str(123)→123bool()转换为布尔值bool(1)→Truelist()转换为列表list(abc)→[a, b, c]tuple()转换为元组tuple([1, 2])→(1, 2)set()转换为集合set([1, 2, 2])→{1, 2}dict()转换为字典dict([(a, 1)])→{a: 1}# 常见转换场景# 1. 字符串转数字进行计算num_str100resultint(num_str)50# 150# 2. 数字转字符串进行拼接count5message你有str(count)条消息# 你有5条消息# 3. 列表转元组使其不可变my_list[1,2,3]my_tupletuple(my_list)# (1, 2, 3)# 4. 字符串转列表charslist(hello)# [h, e, l, l, o]Q3类型转换时可能遇到什么错误A# ValueError: 无法转换的内容int(abc)# 错误不能转换字母int(12.34)# 错误不能直接将带小数的字符串转intfloat(12.34)# 正确12.34# 解决方案先转float再转intint(float(12.34))# 正确12# TypeError: 不兼容的类型年龄25# 错误字符串和数字不能直接相加年龄str(25)# 正确年龄25Q4什么是隐式类型转换APython在运算时自动进行的类型转换。# 整数和浮点数运算整数自动转为浮点数result53.0# 8.0int自动转为float# 布尔值在数学运算中视为0和1TrueTrue# 21 1True*10# 101 * 10Q5如何检查数据类型Ax123# 方法1type() 返回类型对象type(x)str# True# 方法2isinstance() 推荐支持继承检查isinstance(x,str)# Trueisinstance(x,(int,float))# False检查是否是int或float# 实际应用安全转换user_inputinput(输入数字: )ifuser_input.isdigit():# 检查是否全为数字numint(user_input)else:print(输入无效)附录常见错误速查表错误类型错误示例正确写法NameErrorprint(x)x未定义先赋值x 10TypeError5 5int(5) 5或5 str(5)ValueErrorint(abc)确保字符串内容是数字IndexError[1,2][5]检查索引是否在范围内KeyError{a:1}[b]使用get()方法或先检查键SyntaxErrorif x 5缺少冒号if x 5:IndentationError缩进不一致统一使用4个空格缩进

更多文章