【python基础】第05回 数据类型,交互,格式化输出,运算符
上节内容回顾
1.python的注释
# 单行注释 pycharm快捷键:ctrl+? '''多行注释''' """多行注释"""
2.python的编码规范(PEP8)
利用pycharm自动格式化代码的功能反向推导规范要求 1.单行注释如果跟在代码后面 警号跟代码空两格 注释内容与警号空一格 2.符号左右两边如果有数据/变量 两边都应该空一格 快捷键:Ctrl+Alt+L
3.变量与常量的基本使用
1.目的是为了让计算机能够记录事物的状态 2.变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符 3.等号 = 运算符左边是一个变量名,等号 = 运算符右边是存储在变量中的值(先看赋值符号的右边,再看赋值符号的左边) # 在python中没有真正意义上的常量,在其他编程语言有真正的常量
4.名字的命名规范,风格
1.只能包含数字、字母、下划线 2.数字不能开头 3.不能与关键字冲突 4.尽量做到见名知意 5.两种风格 (1)下划线 name_from_db = 'zhang' (2)驼峰体 NameFromDb = 'zhang' nameFronDb = 'zhang'
5.基本数据类型,整型,浮点型,字符串
"""数据类型就类似于是事物的多种不同的状态(表现形式)""" 1.整型 int age = 18 2.浮点型 float weight = 180.5 3.字符串 str name = 'zhang'
本章内容概要
1.基本数据类型
2.与用户交互
3.格式化输出(占位符)
4.运算符
本章内容详解
1.基本数据类型
1.1数据类型之列表(list)
1.本质 能够存储多个数据 并且能够方便的获取整体或者局部 2.基本使用 l1 = [1, 2, 3, 4, 5] 3.语言描述 中括号括起来 内部可以存放多个数据值 数据值与数据值用逗号隔开 数据值可以是任意数据类型 如:l2 = [1, 1.2, 'zhang', [1, 2]] 4.索引取值 name_list = ['张三', '李四', '王二'] '''索引取值:在IT领域数字的起始位置通常是从0开始 现实生活中是从1开始''' print(name_list) 结果:['张三', '李四', '王二'] #全部 print(name_list[0]) 结果:张三 #张三 print(name_list[2]) 结果:王二 #王二 print(name_list[0:2]) #切片 结果:['张三', '李四'] # print(name_list[100]) # 索引超出范围直接报错 例:取8 取8 l1 = [1, 2, [3, 4, 5, [6, 7, 8], 9]] '''遇到复杂构造的数据 先明确整体有几个数据值 然后再一步步拆分''' # 1.先取8所在的小列表 print(l1[2]) # [3, 4, 5, [6, 7, 8], 9] l2 = l1[2] # 将索引取值获取到的数据绑定给l2 # 2.再获取8所在的小小列表 print(l2[3]) # [6, 7, 8] l3 = l2[3] # 将索引取值获取到的数据绑定给l3 # 3.变成了最简单的索引取值情况 print(l3[2]) '''熟练之后 上述可以简写成一步完成''' print(l1[2][3][2])
1.2数据类型之字典(dict)
1.本质 能够存储多个数据 并且能够方便的获取整体或者局部 并且数据具有对于解释 2.基本使用 info_dict = {'姓名': 'jason', '年龄': 18, '爱好': 'read'} 3.语言描述 大括号括起来 内部可以存放多个数据 数据的组织形式是K:V键值对 K是对V的描述性性质的信息 一般是字符串 V是真实的数据值 可以是任意数据类型 4.按K取值 info_dict = {'姓名': 'jason', '年龄': 18, '爱好': 'read'} '''字典取值:字典无法使用索引取值(因为字典是无序的) 可以使用按K取值''' print(info_dict['姓名']) # jason print(info_dict['年龄']) # 18 print(info_dict['家产']) # K不存在直接报错
练习 取age data = {'name': 'jason', 'others': [111, 222, {'a1': '嘿嘿', 'a2': '哈哈', 'a3': [123, {'name': 'jason1', 'age': 18}]}]} (1) print(data['others']) # [111, 222, {'a1': '嘿嘿', 'a2': '哈哈', 'a3': [123, {'name': 'jason1', 'age': 18}]}] l1 = data['others'] print(l1[2]) # {'a1': '嘿嘿', 'a2': '哈哈', 'a3': [123, {'name': 'jason1', 'age': 18}]} l2 = l1[2] print(l2['a3']) # [123, {'name': 'jason1', 'age': 18}] l3 = l2['a3'] print(l3[1]) # {'name': 'jason1', 'age': 18} l4 = l3[1] print(l4['age']) (2) print(data['others'][2]['a3'][1]['age'])
1.3数据类型之元组(tuple)
1.本质 能够存储多个数据 并且能够方便的获取整体或者局部 与列表的区别在于元组内数据值不能"直接修改" 而列表可以 所以元组有一个小外号>>>:不可变的列表 2.作用 一般用于存储一些只能看不能改的数据 3.基本使用 t1 = (1, 2, 3) 4.语言描述 小括号括起来 内存可以存放多个数据值 数据值与数据值之间逗号隔开 数据值可以是任意数据类型 5.与列表对比 l1 = [1, 2, 3] t1 = (1, 2, 3) print(l1[0]) print(t1[0]) l1[0] = 'zhang' # 将列表索引0重新绑定数据值jason print(l1) # ['zhang', 2, 3] t1[0] = 'tony' # 将元组索引0重新绑定数据值tony 直接报错!!! print(t1)
1.4数据类型之集合(set)
1.本质 集合只用于去重和关系运算 去重:自动去除重复的数据 关系运算:判断两个集合之间数据的关系(共同好友 共同点赞) 2.基本使用 s1 = {1, 2, 3, 4, 5} 3.定义空集合 d1 = {} s1 = {} print(type(d1)) # dict print(type(s1)) # dict ss = set() # 必须使用关键字才能定义空集合 print(type(ss))
1.5数据字典之布尔值(bool)
1.本质 用来表示事物是否可行 是否正确 是否合理 总共就两个值 2.基本使用 is_right = True # 真 可以 正确 is_delete = False # 假 不可以 错误 3.详细介绍 布尔值看似很简单 很少见 其实在程序中是最多的 也是使用频率最高的 存储布尔值的名字一般使用is开头 4.布尔值类型转换 程序中所有的数据类型都可以转成布尔值 布尔值为False的数据有 0 None 空字符串 空列表 空字典 ... 除上述之外所有的数据对于的布尔值都是True 5.所有的编程语言都有布尔值 只不过关键字和值可能有变化(了解) typeof true 'boolean' # js中就不一样
2.与用户交互
1.输入 向计算机传递信息 input() # 获取用户输入 name = input('请输入您的用户名>>>:') """ 1.先获取用户输入的数据 2.再赋值给左边的名字name 3.之后就可以通过名字name反复的使用用户输入的数据 """ print(name) input获取到的用户输入都会转成字符串类型 2.输出 计算机向外界输出信息 print() # 打印数据值 print(123) # 括号内可以直接放数据值 name = 'zhang' print(name) # 括号内也可以放名字 print(123,321,323) # 括号内也可以一次性打印多个值 print(name1,name2,name3,name4) print(123,name,3333,name1) """ 换行符:\n \r \r\n end='' 最早起的换行是 \r\n 后面简化成了 \n \r(不同的操作系统可能会有变化) 不用版本的解释器 python3.X print() python2.X print """
3.格式化输出(占位符)
info = "亲爱的xxx你好!你xxx月的话费是xxx,余额是xxx" 在python中如果想要占位 需要使用占位符 %s: 支持所有数据类型替换 (以后我们使用最多的就是%s) info1 = "亲爱的%s你好!你%s月的话费是%s,余额是%s" print(info1 % ('zhang', 5, 100, 999999999999)) print("亲爱的%s你好!你%s月的话费是%s,余额是%s" % ('tony', 5, 999, -100)) %d: 只支持给数字占位 info2 = "亲爱的%d你好!你%d月的话费是%d,余额是%d" print(info2 % (123, 5, 100, 999999999999)) print("亲爱的%d你好!你%d月的话费是%d,余额是%d" % (123, 5, 999, -100)) 产生固定位数的数据(总共8位 不够则使用0填充) print('%08d' % 123) # 00000123
4.运算符
4.1算数运算符
以下假设变量a=10,变量b=20
# 变种情况 a = 10 a = a + 10 可变写 a += 10 a = a - 10 可变写 a -= 10 a = a * 10 可变写 a *= 10 a = a / 10 可变写 a /= 10
4.2比较运算符
以下假设变量a为10,变量b为20
4.3多种赋值符号
例1: x = 10 y = x z = y # 链式赋值 x = y = z = 10
例2: m = 1 n = 2 # 让m绑定n绑定的数据值 让绑定m绑定的数据值 m = n n = m print(m) print(n) #错误,结果m,n都为2 '''方式1:利用中间变量''' a = m m = n n = a print(m, n) '''方式2:交叉赋值''' m, n = n, m print(m, n)
例3: name_list = ['zhang', 'tony', 'kevin'] # 用三个不同的名字存储三个不同的人名 name1 = name_list[0] name2 = name_list[1] name3 = name_list[2] '''解压赋值:赋值符号的左边至少有两个及以上的名字 才能称之为解压赋值''' name1, name2, name3 = name_list #述操作需要保证左边的名字和右边的数据值 个数一致 """特殊情况 带解压的数据非常的多""" l1 = [11, 22, 33, 44, 55, 66, 77, 88, 99] a, b, *c, d = l1 # *在解压赋值的时候会自动将多余的数据值组织成列表赋值给*号后面的变量名 print(a) # 11 print(b) # 22 print(c) # [33, 44, 55, 66, 77, 88] print(d) # 99 *a, b, c = l1 print(a) # [11, 22, 33, 44, 55, 66, 77] print(b) # 88 print(c) # 99
作业
1.获取用户信息并打印出下列格式 ------------ info of XXX ----------- Name : XXX Age : XXX gender : XXX Job : XXX ------------- end ----------------- 解: name = input('请输入您的名字:') age = input('请输入您的年龄:') gender = input('请输入您的性别:') job = input('请输入您的工作:') info1 = ''' ------------ info of %s ----------- Name : %s Age : %s gender : %s Job : %s ------------- end ----------------- ''' % (name, name, age, gender, job) print(info1)
或 print(info1 % (name, name, age, gender, job))
或 print(''' ------------ info of %s ----------- Name : %s Age : %s gender : %s Job : %s ------------- end ----------------- ''' % (name, name, age, gender, job))
2.自行研究输入输出在python2和python3中的区别 '''python2现在几乎不用 但是我们得知道它的一些特性''' 2.1.输入的区别 python3只有一个input() 并且都转成字符串类型 python2有两个获取用户输入的方式 input() 输入的数据必须自己加上数据的特征 输啥就是啥 >>> name = input('name>>:') name>>:123 >>> type(name) <type 'int'> >>> name = input('name>>:') name>>:zhang Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<string>", line 1, in <module> NameError: name 'zhang' is not defined >>> type(name) <type 'int'> >>> name = input('name>>:') name>>:'zhag' >>> type(name) <type 'str'> 还能够识别一些简单的代码(了解即可) raw_input() 等价于python3里面的input 接收的数据都会转成字符串 2.2.输出的区别 python3只有print()一种用法 python2有两种用法 print print()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)