数据类型

  • 什么是数据类型

    在日常生活中数据的表现形式多种多样,在程序中也是如此

  • 为何学习数据类型

    针对不同的数据采用最佳的数据类型来表示出该数据的价值

  • 本次学习数据类型仅仅是了解

    只要看到每个数据类型能够叫出它们的名字及代码如何编写即可

  • 学前必会

    如何查看数据值得数据类型 type(数据值)\type(变量名)

数据类型之整型int

大白话的意思其实就是整数
应用场景: 年龄 班级人数 年份
代码实现:
age = 18
stu_num = 50
year = 2022

数据类型之浮点型float

大白话的意思其实就是小数
应用场景: 身高 体重 薪资
代码实现:
height = 1.83
weight = 75.5
salary = 3.1

数据类型之字符串str

大白话的意思其实就是文本类型的数据>>>:引号引起来的部分都是字符串
应用场景: 姓名 地址 爱好
代码实现:
name = 'jason'
addr = '芜湖'
hobby = '学习'
1.定义字符串有四种方式
name = 'jason'
name1 = "jason"
name2 = '''jason'''
name3 = """jason""" 2.为什么定义字符串需要有多种方式
我们在字符串中编写文本也可能会使用引号,为了避免冲突,有了多种方式
info = "Jason老师说:'年轻不是用来挥霍的资本'" 3.如何区分三引号是字符串还是注释
关注左侧是否含有赋值符号和变量名,如果有则为字符串,没有则为注释

数据类型之列表list

大白话的意思其实就是可以存储多个数据值的类型,并且可以非常方便的取
应用场景:存储多个数据值,并且将来可能需要单独取其中一些
代码实现:
name_list = ['jason','tony','kevin','oscar','jerry']
1.列表的文字描述
中括号括起来,内部可以存放多个数据值,数据值与数据值之间逗号隔开,数据值可以是任意数据类型
l1 = [11, 11, 11, 'jason',[11, 22]]
2.索引取值
起始数字是从0开始,l1[索引值]

数据类型之字典dict

能够非常精确的存储和表达数据值的含义
代码实现:
info_dict = {
'username': 'jason',
'age': 18,
'hobby': 'read'
}
1.字典文字描述
大括号括起来,内部可以存放多个数据,数据的组织形式是K:V键值对
键值对与键值对之间逗号隔开
K是对V的描述性性质的信息(解释说明) 一般都是字符串类型
V是真正的数据值,可以是任意数据类型
2. 按K取值
字典只能按K取值,因为字典是无序的,没有索引的概念
info_dict['username']

基本数据类型之布尔值bool

1. 用来判断事物的对错 是否可行 只要用于流程控制中

2. 只有两种状态
True 对的 真的 可行的
False 错的 假的 不可行的 3. python中所有数据都自带布尔值
布尔值为False的数据有: 0 None ' ' [] {}
布尔值为True的数据有: 除了上面的都是True 4. 存储布尔值的变量名一般推荐使用is开头
is_delete = False
is_alive = True
'''
很多程序中提供的注销账户的功能 其实底层并没有删除数据 而是修改了数据的状态
id username password phone is_delete
1 jason 123 110 1
2 kevin 321 120 0
'''

基本数据类型之元祖tuple

1. 也称为‘不可变’的列表(元祖内索引绑定的内存地址不能修改)
2. 小括号括起来,内部存放多个数据值,数据值与数据值之间逗号隔开,数据值可以是任何数据类型
3. 代码实现
t1 = (11, 22, 'jason')
4. 元祖与列表的对比
# l1 = [11, 22, 33]
# print(l1[0]) # 获取索引0对应的数据值
# l1[0] = 666
# print(l1) # [666, 22, 33] # t1 = (11, 22, 33)
# print(t1[0])
# t1[0] = 999
# print(t1) t1 = (11, 22, [111, 222])
t1[2][1] = 666
print(t1) # (11, 22, [111, 666]) 5. 元祖内如果只有一个数据值
t1 = (1)
t2 = (11.11)
t3 = ('jason')
print(type(t1),type(t2),type(t3)) # <class 'int'> <class 'float'> <class 'str'>
t1 = (1,)
t2 = (11.11,)
t3 = ('jason',)
print(type(t1), type(t2), type(t3)) # <class 'tuple'> <class 'tuple'> <class 'tuple'>
'''
建议: 以后在使用可以存放多个数据值的数据类型时,如果里面暂时只有一个数据值,那么也建议你加上逗号
'''

基本数据类型之集合set

1.集合只能用于去重和关系运算
2.集合内数据只能是不可变类型
3.大括号括起来,内部存放多个数据值,数据值与数据值之间逗号隔开,数据值不是K: v键值对
4.代码实现
s1 = {1, 2, 3, 4, 5, 6}
5.定义空集合和空字典
{}
默认是字典
set()
定义空集合

与用户交互

'''
以前银行取钱只能拿着存折去柜台跟小姐姐交流才可以
你想干嘛 我想取钱
请输入密码 滴滴滴密码
想取多少钱 我想取一个亿
...
随后程序代替了小姐姐跟我们交互
ATM机器
'''
1.获取用户输入
input
# 获取用户输入
username = input('请输入您的用户名>>>:')
'''
1.先执行input获取用户输入
2.将输入的数据绑定给变量名username
3.以后在程序中就可以使用变量名反复调用用户数据
'''
强调: input获取到的数据都会统一处理成字符串类型 2.输出内部信息
print
1.括号内既可以放数据值也可以放变量名,并且支持多个,逗号隔开即可
2.print自带换行符
换行符:\r\n \n(斜杆与字母组合到一起可能会产生特殊的含义)
3.print也可以切换结束符
print(数据,end = '默认是\n')
扩展:python2与python3中两个关键字的区别
python2中
input方法需要用户自己提前指定数据类型
写什么类型就是什么类型
raw_input方法与python3中input一致,输入的统一处理成字符串
python2中
print方法有两种使用方式
print 数据值
print(数据值)

格式化输出

提前定义好一些内容
将来需要使用的时候可以局部修改
eg: 奖状、录取通知书、合同
代码实现
在现实生活中大部分情况下使用下划线提示别人填写内容
但是在程序中需要使用占位符: % s % d
info = '%s同志你好'
'''单个占位符'''
# print(info % 'Jason') # Jason同志你好
# print(info % 'tony') # tony同志你好
# print(info % ('jason',)) # jason同志你好
# print('%s同志你好' % ('Tony',))
'''多个占位符'''
# desc = '姓名:%s 年龄:%s 爱好:%s'
# print(desc % ('jason', 18, 'read')) # 姓名:jason 年龄:18 爱好:read
# print('姓名:%s 年龄:%s 爱好:%s' % ('tony', 28, 'rap')) # 姓名:tony 年龄:28 爱好:rap
'''注意事项:有几个占位符就需要几个数据值'''
# print('my name is %s my age is %s' % ('jason',)) # 少了不行
# print('my name is %s my age is %s' % ('jason', 18, 'read')) # 多了不行
'''不同占位符的区别'''
# demo1 = '%s您好 您本月的话费是%s 余额是%s' # %s常见数据类型都支持
# print(demo1 % ('jason', 100, 1000000)) # jason您好 您本月的花费是100 余额是1000000
# demo2 = '%d您好 您本月的话费是%d 余额是%d' # %d只支持数字类型
# print(demo2 % ('tony', 100000, -10000)) print('%08d' % 123) # 00000123
print('%08d' % 12343244324) # 12343244324

基本运算符

1.数学运算符
+ - * / % // **
简化写法
n = 10
n += 1 # n = n + 1
n -= 1 # n = n - 1
n *= 1 # n = n * 1
n /= 1 # n = n / 1
n %= 1 # n = n % 1
n //= 1 # n = n // 1
n **= 1 # n = n ** 1 2.比较运算符
< > <= >= == !=

常用赋值符

1.链式赋值
# name = 'jason'
# name1 = name
# name2 = name
# 链式赋值
name = name1 = name2 = 'jason' 2.交叉赋值
m = 100
n = 999
'''让m和n互相转换绑定的值'''
"""奇葩式写法"""
# m = n
# n = m
# print(m, n) # 999 999
'''方式1:采用中间变量'''
# temp = m
# m = n
# n = temp
# print(m, n) # 999 100
'''方式2:交叉赋值语法'''
m, n = n, m
print(m, n) # 999 100 3.解压赋值
name_list = ['jason', 'kevin', 'tony', 'oscar']
'''low的写法'''
# name1 = name_list[0]
# name2 = name_list[1]
# name3 = name_list[2]
# name4 = name_list[3]
'''解压赋值语法'''
# name1, name2, name3, name4 = name_list
'''解压赋值在使用的时候 正常情况下需要保证左边的变量名与右边的数据值个数一致'''
# a, b = name_list # 变量名少了不行
# a, b, c, d, e = name_list # 变量名多了也不行
'''当需要解压的数据个数特别多 并且我们只需要使用其中的几个 那么可以打破上述的规则'''
# a, *b = name_list # *会自动接收多余的数据 组织成列表赋值给后面的变量名
# print(a) # jason
# print(b) # ['kevin', 'tony', 'oscar']
# a, c, *b = name_list
# print(a) # jason
# print(c) # kevin
# print(b) # ['tony', 'oscar']
# a, *b, c = name_list
# print(a) # jason
# print(b) # ['kevin', 'tony']
# print(c) # oscar
'''当数据值不准备使用的时候 可以使用下划线作为变量名绑定'''
# a, *_, c = name_list
# print(a) # oscar
# print(c) # oscar

逻辑运算符

'''主要配合条件一起使用'''
and 与
and连接的多个条件必须全部成立 结果才成立
eg:你去相亲提要求:身高必须是160以上、长相必须好看、家里必须有钱、性格必须温柔
身高 and 长相 and 有钱 and 温柔
1 > 2 and 4 < 8 and 10 < 1 and 1 == 2 #如果条件中全部由and组成那么判断起来非常的简单,只要发现一个不成立,结果就不成立
print(1 < 10 and 666) # 666 成立
print(1 < 10 and 2 < 8) # True 成立
print(111 and 222) # 222 成立
如果需要你准确的说出具体的结果值,那么需要按照下列方式
如果and左边的条件是成立的,那么就完全取决于右边的条件
右边如果直接是数据值,那么结果就是该数据值,如果是含有表达式,则为布尔值 or 或
or连接的多个条件只要有一个成立,结果就成立
eg: 你去相亲提要求:要么家里有钱,或者家里有势,或者长的完美或者你死心塌地
有钱 or 有势 or 好看 or 专一
1 > 2 or 4 < 8 or 10 < 1 or 1 == 2 如果条件全部由or组成那么判断起来非常的简单,只要发现一个成立,结果就成立
print( 1 < 10 or 666) # True
print(666 or 1 > 10) # 666
print(0 or False) # False
print(0 or 111) # 111 not 非
取反(类似于说反话) """
三者混合使用的时候有优先级之分,但是我们不需要记忆优先级,应该通过代码的形式提前规定好优先级
eg:先乘除后加减,但是可以使用括号来改变优先级
(3>4 and 4>3) or ((1==3 and 'x' == 'x')or 3 > 3)
"""

成员运算符

判断个体在不在群体内
name_list = ['jason', 'kevin', 'oscar', 'jerry']
# print('tony' in name_list) # False
# print('tony' not in name_list) # True
# print('j' in name_list) # False 列表最小单位是数据值,不能再细分 # s1 = 'hello world'
# print('d' in s1) # True 字符串最小单位是单个单个的字符 d1 = {
'username': 'jason',
'pwd': 123
}
print('jason' in d1) # False 字典成员运算只有键参与
print('username' in d1) # True 'username' 'pwd'

身份运算符

"""
id() 返回一串数字 该数字可以看成是内存地址
"""
is 判断内存地址是否相同
== 判断数据值是否相同 l1 = [11, 22, 33, 44, 55, 66, 77, 88]
l2 = [11, 22, 33, 44, 55, 66, 77, 88]
print(l1 == l2) # True
print(id(l1)) # 1922127177608
print(id(l2)) # 1922127177544
print(l1 is l2) # False # 小整数池
i1 = 11
i2 = 11
print(i1 is i2) # True s1 = 'jason jason jason'
s2 = 'jason jason jason'
print(s1 is s2) # True (python解释器是False,因为pycharm优化过)
不同的环境下可能优化的程度不一样
"""
了解
值相同 内存地址可能不同
内存地址相同 值肯定相同
"""

作业

1. 获取用户输入并打印成下列格式
-----------info of Jason ------------
Name : Jason
Age : 18
Sex : male
Job : Teacher
-------------end------------------- name = input("姓名:")
age = input("年龄:")
sex = input("性别:")
job = input("工作:")
print('-----------info of Jason-------')
print('Name: %s' % (name,))
print('Age: %s' % (age,))
print('Sex: %s' % (sex,) )
print('Job: %s' % (job,))
print('----------------end---------------') 2.准备说出下列变量名v绑定的结果
v1 = 1 or 3 #1
v2 = 1 and 3 #3
v3 = 0 and 2 and 1 #0
v4 = 0 and 2 or 1 #1
v5 = 0 and 2 or 1 or 4 #1
v6 = 0 or False and 1 #False

Python-D4-语法入门2的更多相关文章

  1. Python基本语法[二],python入门到精通[四]

    在上一篇博客Python基本语法,python入门到精通[二]已经为大家简单介绍了一下python的基本语法,上一篇博客的基本语法只是一个预览版的,目的是让大家对python的基本语法有个大概的了解. ...

  2. Python基本语法[二],python入门到精通[四] (转)

    写在前面 python你不去认识它,可能没什么,一旦你认识了它,你就会爱上它 回到顶部 v正文开始:Python基本语法 1.定义常量: 之所以上篇博客介绍了定义变量没有一起介绍定义常量,是因为Pyt ...

  3. Python基本语法,python入门到精通[二]

    在上一篇博客Windows搭建python开发环境,python入门到精通[一]我们已经在自己的windows电脑上搭建好了python的开发环境,这篇博客呢我就开始学习一下Python的基本语法.现 ...

  4. python语法入门之流程控制

    python语法入门之流程控制 流程控制是指控制流程,具体指控制程序执行的流程. 流程控制分为三种: 1.顺序结构 程序从上而下的正常执行(正常执行的代码就是顺序结构) 2.分支结构 赋予程序人的思维 ...

  5. [ Python入门教程 ] Python基础语法

    Python的语法非常简练,因此用Python编写的程序可读性强.容易理解.本章将介绍Python的基本语法和概念. Python文件类型 1.源代码.Python的源代码的扩展名以py结尾,可直接运 ...

  6. Python学习--01入门

    Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...

  7. Python 基础语法(二)

    Python 基础语法(二) --------------------------------------------接 Python 基础语法(一) ------------------------ ...

  8. Python 30分钟入门指南

    Python 30分钟入门指南 为什么 OIer 要学 Python? Python 语言特性简洁明了,使用 Python 写测试数据生成器和对拍器,比编写 C++ 事半功倍. Python 学习成本 ...

  9. Python基础语法 系统学习

    Python 中的基础语法最大的特点就是优雅和简洁.入门学习Python的难度相比较其他语言也比较小. 我个人比较推荐以下三个学习方式(根据个人情况和喜好,可选择任意一个): 1.  菜鸟在线:出品的 ...

  10. Python编程从入门到实践笔记——if语句

    Python编程从入门到实践笔记——if语句 #coding=utf-8 cars=['bwm','audi','toyota','subaru','maserati'] bicycles = [&q ...

随机推荐

  1. WebGPU 导入[2] - 核心概念与重要机制解读

    目录 1. 核心概念 ① 适配器和设备 ② 缓冲.纹理.采样器 ③ 绑定组 ④ 着色器与管线 ⑤ 编码器与队列 2. 重要机制 ① 缓冲映射机制 ② 时间线 1. 核心概念 这部分不会详细展开,以后写 ...

  2. GitHub 主页美化设置教程

    GitHub profile设置教程 早些时候逛GitHub,就发现别人的主页特别的精美,当时没有空研究,前几天得空给安排了一下 先看一下成品 贴一个github上一个男人的主页 下面这个是我的 果然 ...

  3. 抖音web端 s_v_web_id 参数生成分析与实现

    本文所有教程及源码.软件仅为技术研究.不涉及计算机信息系统功能的删除.修改.增加.干扰,更不会影响计算机信息系统的正常运行.不得将代码用于非法用途,如侵立删! 抖音web端 s_v_web_id 参数 ...

  4. GreatSQL重磅特性,InnoDB并行并行查询优化测试

    欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 1 ...

  5. 图片系列(6)不同版本上 Bitmap 内存分配与回收原理对比

    请点赞关注,你的支持对我意义重大. Hi,我是小彭.本文已收录到 GitHub · AndroidFamily 中.这里有 Android 进阶成长知识体系,有志同道合的朋友,关注公众号 [彭旭锐] ...

  6. 痞子衡嵌入式:浅析IAR下调试信息输出机制之半主机(Semihosting)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是IAR下调试信息输出机制之半主机(Semihosting). 在嵌入式世界里,输出打印信息是一种非常常用的辅助调试手段,借助打印信息,我 ...

  7. flask 可插拔视图

    Flask 0.7 版本引入了可插拨视图.可插拨视图基于使用类来代替函数,其灵感来自于 Django 的通用视图.可插拨视图的主要用途是用可定制的.可插拨的视图来替代部分 实现.普通的函数视图 演示代 ...

  8. 【C标准库】详解strerror函数

    创作不易,感谢支持 strerror 头文件:string.h 描述: strerror() 函数接受一个参数:errnum,它是一个表示错误代码的整数值.此函数将错误代码转换为说明错误的合适字符串指 ...

  9. Mac系统下Datagrip打不开、点击没反应?

    有没有可能是因为你从网上下载了一些破解软件导致的? 背景 Mac系统下JB公司家的IDEA. Datagrip.PyCharm 或 Goland 打不开点击没反应-- 分析 大概率是之前安装过 汉化插 ...

  10. SpringMVC 03: 请求和响应的乱码解决 + SpringMVC响应Ajax请求

    请求或响应的中文乱码问题 tomcat9解决了get请求和响应的中文乱码问题,但是没有解决post请求或响应的中文乱码问题 tomcat10解决了get和post请求以及响应的中文乱码问题 考虑到实际 ...