数据类型

  • 什么是数据类型

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

  • 为何学习数据类型

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

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

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

  • 学前必会

    如何查看数据值得数据类型 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. 精心总结十三条建议,帮你创建更合适的MySQL索引

    上篇文章讲到使用MySQL的Explain命令可以分析SQL性能瓶颈,优化SQL查询,以及查看是否用到了索引. 我们都知道创建索引可以提高查询效率,但是具体该怎么创建索引? 哪些字段适合创建索引? 哪 ...

  2. Odoo 14 Action URL 生成

    from werkzeug.urls import url_encode url = '/web#%s' % url_encode({ 'action': 'hr.plan_wizard_action ...

  3. DolphinScheduler 荣获 2021 中国开源云联盟优秀开源项目奖!

    点击上方 蓝字关注我们 好消息,中国开源云联盟(China Open Source Cloud League,简称"COSCL")于近日公布 2021 杰出开源贡献者.优秀开源项目 ...

  4. Spring 03 切面编程

    简介 AOP(Aspect Oriented Programming),即面向切面编程 这是对面向对象思想的一种补充. 面向切面编程,就是在程序运行时,不改变程序源码的情况下,动态的增强方法的功能. ...

  5. 未来的可再生能源电网!FREEDM 论文阅读

    全文主旨[省时间快读] 背景: 论文标题:The Future Renewable Electric Energy Delivery and Management (FREEDM) System: T ...

  6. linux之间上传下载--SCP

    1.远程拷贝文件 [root@rhel8-client01 yum.repos.d]# scp root@192.168.72.149:/etc/yum.repos.d/* . (.表示拷贝到当前文件 ...

  7. CF1511G Chips on a Board (倍增)

    题面 原题题面 转化方便版题意: 有 n n n 堆石子,第 i i i 堆有 c i ∈ [ 1 , m ] c_i\in [1,m] ci​∈[1,m] 个石子,有 q q q 次询问,每次询问给 ...

  8. 【java】学习路径27-HashSet、TreeSet,HashMap

    学习路径20-27的所有源代码都可以在此下载 https://www.aliyundrive.com/s/cg8jTRbg6vy HashSet.TreeSet中,Set表示集合,特性在于:无序的.不 ...

  9. KingbaseES V8R6集群维护之--修改数据库服务端口案例

    ​ 案例说明: 对于KingbaseES数据库单实例环境,只需要修改kingbase.conf文件的'port'参数即可,但是对于KingbaseES V8R6集群中涉及到多个配置文件的修改,并且在应 ...

  10. KingbaseES中的参数查看与修改

    KingbaseES数据库的配置参数都在kingbase.conf文件中,这些参数有些是直接修改就可以生效,有些需要重启数据库才能生效,而有些根本就不能修改.数据库把这些参数分为以下几类: inter ...