Python基础数据类型

上期练习讲解

# 练习一.想办法打印出jason
l1 = [11, 22, 'kevin', ['tony', 'jerry', [123, 456, 'jason'] ] ]
#解题思路,先看列表中有几个数据,查看jason在哪个数据中
print(l1[3])
l2 = l1[3] #l2 = ['tony', 'jerry', [123, 456, 'jason'] ]
print(l2[2])
l3 = l2[2] # l3 = [123, 456, 'jason']
print(l3[2])
#使用索引取值,一步步得到我们想要的数据,也可以简化代码
print(l1[3][2][2]) #练习二.想办法打印出大宝贝
d1 = {'name': 'jason',
'others': {'a1': 'heiheihei',
'a2': {'k1': 'hahaha',
'k2': 'hehehe',
'k3': '大宝贝'}
}
}
#解题思路,一步步取值,大括号为字典,字典取值需要用键取值
d2 = d1['others'] # {'a1': 'heiheihei', 'a2': {'k1': 'hahaha', 'k2': 'hehehe', 'k3': '大宝贝'}
d3 = d2['a2'] # {'k1': 'hahaha', 'k2': 'hehehe', 'k3': '大宝贝'}
d4 = d3['k3'] # '大宝贝'
#使用键对取值,一步步得到我们想要的数据,也可以简化代码
print(d1['others']['a2']['k3']) #练习三,想办法打印出run
data = {'username': 'jason',
'hobby': [11,
22,
{'height': 183,
'hobby': ['read',
'run',
'music'
]
}
]
}
#解题思路,一步步取值,大括号为字典,字典取值需要用键取值,中括号为列表使用引索取值。
data1 = data['hobby'] # [11, 22, {'height': 183, 'hobby': ['read', 'run', 'music' ]
dota2 = data1[2] # {'height': 183, 'hobby': ['read', 'run', 'music' ]
dota3 = dota2['hobby'] #['read', 'run', 'music' ]
dota4 = dota3[1]
#遇到字典类型用键对取值,遇到列表使用引索取值,简化代码
print(data['hobby'][2]['hobby'][1])

数据类型-布尔型bool

1.布尔型bool:用来判断事物,判断逻辑的对与错。大多用于流程控制
2.bool类型只有2种状态
对/真 True
错/假 False
3.python中所有的数据都自带布尔值
代表False的数据值 = 0 None '' [] {} # 空的字符 列表 字典
代表True的数据值 = 除了上面的都是True
4.python中布尔值变量的命名标准 ,使用is开头命名
is_name
is_alive
#举例:生活中的注销账户,其实只是把账户的有效状态布尔值从 有效 变为 无效 (从1变为0)

数据类型-元组tuple

1.元祖tuple:称为‘不可变’的列表 #区别与列表 列表内数据值可以改变,而元祖内同一引索内数据值无法更改
2,代码展示: t1 = (1,2,[2,1],'moon') # 使用小括号 中间可以存放多种数据值
3,元组与列表区别代码展示
l1 = [11, 22, 33]
print(l1[0]) # 获取索引0对应的数据值
l1[0] = 666 #此处可以直接更改了列表内引索位置为0的数据值
print(l1) # [666, 22, 33] 列表内数据可以重新赋值 t1 = (11, 22, 33)
print(t1[0])
t1[0] = 999 # 此处想更改元组内 引索位置为0的数据值
print(t1) # 运行报错: 'tuple' object does not support item assignment(元组内对象不支持再次赋值)

数据类型-集合set

集合set:没有重复的列表  可以用来去重
列表内数据只能是不可变类型。
代码展示:
s1 = {1,2,3,22,33} #使用大括号定义集合,但是集合内没有 键 对 和字典作用不同。
关于集合,详细知识作用,只会再讲。

用户交互 (input/print)

1,什么是用户交互:
举例:当你登录游戏账户,首先程序会提醒你, 请输入账号, 然后你需要进行输入的操作
然后程序再提醒你,请输入密码,然后你再 输入密码。 这就是程序与用户再交互。
2.如何让用户输入:
input # 获取用户输入
username = input('请输入用户名') #这时候就会显示请输入用户名,然后等待用户输入
#当用户输入完成后,用户输入的用户名会赋值到 username这个变量名。
#用户输入的信息 默认都是 字符串 类型
3.如何输出:
print # 打印 输出数据值
passwold = input('请输入密码')
print(username,passwold) # 括号内既可以放数据值也可以放变量名 并且支持多个逗号隔开即可
4.print自带换行符

格式化输出-占位符

格式化输入:一些固定模版 提前定义好的一些内容。例如,奖状,合同,通知书。
占位符形式1: %s #适用于字符串
代码实现:
certificate = "恭喜,%s同学在2022年度学习中,表现优异特发 三好学生 以资鼓励"
#由于此模版可以适用与多个同学,所以在名字的地方我们使用了占位符 %s。
print(certificate % "周杰伦")
#恭喜,周杰伦同学在2022年度学习中,表现优异特发 三好学生 以资鼓励
也可以支持多个占位符存在
certificate = "恭喜,%s同学在2022年度学习中,表现优异特发 %s 以资鼓励"
#我们尝试在2个地方都使用占位符,姓名,和 奖项
print(certificate % ("周杰伦",'音乐委员'))
# 恭喜,周杰伦同学在2022年度学习中,表现优异特发 音乐委员 以资鼓励
'''注意事项:有几个占位符就需要几个数据值,并且需要用(包起来)''' 占位符形式2: %d #适用于数字。例如 学好 id 等
student_id = "查询到 您的学生id:%d "
print(student_id % 120002 ) #查询到 您的学生id:120002
优点:可以控制数字位数
student_id = "查询到 您的学生id:%06d " # %06d 代表此占位符为6位数
print(student_id % 382 ) # 查询到 您的学生id:000382

基本运算符

运算符号 使用作用 代码展示
+ 加法运算 2+2
- 减法运算 2-2
* 乘法运算 2*2
/ 除法运算 2/2
% 取余 2%2
// 取商 2//2
** 平方 2**2
  • 相关简化写法
      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

常用赋值符

1,链式赋值
num = 100
num1 = 100
num2 = 100
链式赋值展示: num = num1 = num2 = 100
print(num2) # 100
2.交叉赋值
num = 100
num1 = 200
#让数字1和数字2数据值交换
常规代码:
num3 = num #采用中间变量
num = num1
num1 = num3
print(num,num1) # 200 100
交叉赋值法:
num,num1 = num1,num
print(num,num1) # 200 100
3,解压赋值
name_list = ['moon','calvin','alen','tony']
name1 = name_list[0]#常规赋值法
name2 = name_list[1]
name3 = name_list[2]
name4 = name_list[3] #使用引索对列表内数据一个一个进行赋值
解压赋值法
name1,name2,name3,name4 = name_list
print(name1,name2,name3,name4) # moon calvin alen tony
'''解压赋值在使用的时候 正常情况下需要保证左边的变量名与右边的数据值个数一致'''
列表有4个数据,对于也要提供4个变量名。不多不少负责都会报错。
扩展了解:
name1,*b = name_list
print(name1) #moon
print(b) # ['calvin', 'alen', 'tony']
*会自动接收多余的数据 组织成列表赋值给后面的变量名

逻辑运算符

1,and. 与
and连接的多个条件必须全部成立 结果才成立。
例如:你的择偶标准,1,身高162以上 2,肤色白 3,工作稳定,4,性格温柔
1 and 2 and 3 and 4
则代表 1234必须要同时满足 如何有任意一条没有满足 则为 False 不成立
2,or 或
or连接的多个条件只要有一个成立 结果就成立
1 or 2 or 3 or 4
则代表 1234有任意一项满足即可,例如只要肤色白就 True 成立
3, not 非
不在,不属于,不是 ,类似反话
not 1 #不是身高162以上就行
4,混合用法
(3>4 and 4>3) or ((1==3 and 'x' == 'x') or 3 >3)
eg:使用括号来进行优先级

成员运算符

in
判断个体是否在群体中
代码举例:
num = [1,2,3,4,5,6]
print(2 in num) # True 因为2在其中所以成立
print(7 in num) # False 因为7在其中所以不成立
num = {1: 11, 2: 22, 3: 33}
print(11 in num) #False 因为11在字典的键中所以不成立
num = {1: 11, 2: 22, 3: 33}
print(2 in num) #True 因为2在字典的键中所以成立
字典成员运算只有键参与
s1 = 'hello world'
print('d' in s1) # True 因为d在z字符串中所以成立
当然字符串也是也可使用的,查找的是每一个索引

身份运算符

is		判断内存地址是否相同  ==  判断数据值是否相同
num1 = [1,2,3,4]
num2 = [1,2,3,4]
print(num1 == num2) # True 数据值是相同
print(num1 is num2) # False 内存地址不同
即便数据相同也不代表数据地址相同哦 id 可以查询数据地址
print(id (num1)) #4545094720
print(id (num2)) #4545097088

小练习

练习一:
获取用户输入并打印成下列格式
------------ info of Jason -----------
Name : Jason
Age : 18
Sex : male
Job : Teacher
---------------- end -----------------
答案:
Name = input('请输入姓名')
Age = input('请输入年龄')
Sex = input('请输入性别')
job = input('请输入工作')
print('------------ info of ',Name,'-----------') #字符串,变量,字符串
print("Name:", Name) #前面是字符串 后面是 变量
print("Age:", Age)
print("Sex:", Sex)
print("job:", job)
print('---------------- end -----------------') 练习二:
准备说出下列变量名v绑定的结果
v1 = 1 or 3 # 1
v2 = 1 and 3 # 3
v3 = 0 and 2 and 1 # 0
v4 = 0 and 2 or 1 #
v5 = 0 and 2 or 1 or 4 #
v6 = 0 or False and 1 #

Python数据类型+运算符的更多相关文章

  1. 跟着ALEX 学python day2 基础2 模块 数据类型 运算符 列表 元组 字典 字符串的常用操作

    声明 : 文档内容学习于 http://www.cnblogs.com/xiaozhiqi/  模块初始: Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相 ...

  2. Python学习笔记----数据类型 运算符 循环 条件判断

    1. Python安装 在官网www.python.org下载安装程序,可以支持的操作系统linux,windows,mac. Python版本:2.x和3.x,分别有x86和x64. 在Window ...

  3. python基础[1]——python运算符&python数据类型之数值型

    python常用运算符&数字&布尔值 上节回顾 一.变量名和标识符 变量名的命名规范 (1)只能包含数字,字母和下划线 (2)只能以字母和下划线开头(不能以数字开头) (3)标识符是区 ...

  4. python数据类型一:字符串

    Python 字符串 字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符串很简单,只要为变量分配一个值即可.例如: var1 = 'Hello W ...

  5. 二、Python数据类型(一)

    一.Python的基本输入与输出语句 (一)输出语句 print() 示例: print('你好,Python') print(4+5) a = 10 print(a) 输出的内容可以是字符串,变量, ...

  6. 【转】Python数据类型之“文本序列(Text Sequence)”

    [转]Python数据类型之“文本序列(Text Sequence)” Python中的文本序列类型 Python中的文本数据由str对象或字符串进行处理. 1.字符串 字符串是Unicode码值的不 ...

  7. #6 Python数据类型及运算

    前言 前文讲述了Python的输入输出以及变量的相关知识点,本节将探讨Python的数据类型以及数据之间的运算方式! 一.Python数据类型 上一节弄清了变量,其实变量所指向的值是有自己独特的数据类 ...

  8. python 数据类型详解

    python数据类型详解 参考网址:http://www.cnblogs.com/linjiqin/p/3608541.html 目录1.字符串2.布尔类型3.整数4.浮点数5.数字6.列表7.元组8 ...

  9. 【转】Python数据类型之“集合(Sets)与映射(Mapping)”

    [转]Python数据类型之“集合(Sets)与映射(Mapping)” 一.集合类型(Sets) 集合对象是不同的(不可重复)hashable对象的无序集合.常见用法包括:成员关系测试.移除序列中的 ...

  10. python基础(三)python数据类型

    一.数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需 ...

随机推荐

  1. 第六章:Django 综合篇 - 8:信号 signal

    django自带一套信号机制来帮助我们在框架的不同位置之间传递信息.也就是说,当某一事件发生时,信号系统可以允许一个或多个发送者(senders)将通知或信号(signals)发送给一组接受者(rec ...

  2. 使用二进制文件部署Etcd集群

    Etcd 是一个分布式键值存储系统,Kubernetes使用Etcd进行数据存储,所以先准备一个Etcd数据库,为解决Etcd单点故障,应采用集群方式部署,这里使用3台组建集群,可容忍1台机器故障,当 ...

  3. Jenkins配置项目构建的钉钉通知

    在任意一个钉钉群里创建自定义的钉钉机器人,然后能够看到钉钉开放的webhook,复制webhook. Jenkins中安装钉钉插件,然后在项目的配置当中,构建后操作里添加钉钉报警. 安装钉钉通知插件 ...

  4. day07-2MySQL索引

    MySQL索引 说起提高数据库性能,索引是最物美价廉的东西了.不用加内存,不用改程序,不用调sql,查询速度就能提高千百倍. 例子 首先,创建一个有800万条数据的表 -- 创建测试数据库 tmp C ...

  5. 洛谷P2880 [USACO07JAN] Balanced Lineup G(树状数组/线段树)

    维护区间最值的模板题. 1.树状数组 1 #include<bits/stdc++.h> 2 //树状数组做法 3 using namespace std; 4 const int N=5 ...

  6. 换工作?试试远程工作「GitHub 热点速览 v.22.40」

    近日,潜在某个技术交流群的我发现即将毕业的小伙伴在焦虑实习.校招,刚好本周 GitHub 热榜有个远程工作项目.不妨大家换个思路,"走"出去也许有更多的机会.当然,除了全球的远程工 ...

  7. 第三方库openPyxl读取excel文件

    import openpyxl from openpyxl.worksheet.worksheet import Worksheet def openpyxl_read(): #1.打开文件 work ...

  8. Eclipse插件RCP桌面应用开发的点点滴滴

    Eclipse插件开发的点点滴滴 新公司做的是桌面应用程序, 与之前一直在做的web页面 ,相差甚大 . 这篇文章是写于2022年10月底,这时在新公司已经入职了快三月.写作目的是:国内对于eclip ...

  9. C# 6.0 添加和增强的功能【基础篇】

    C# 6.0 是在 visual studio 2015 中引入的.此版本更多关注了语法的改进,让代码更简洁且更具可读性,使编程更有效率,而不是和前几个版本一样增加主导性的功能. 一.静态导入 我们都 ...

  10. OpenMP 入门

    OpenMP 入门 简介 OpenMP 一个非常易用的共享内存的并行编程框架,它提供了一些非常简单易用的API,让编程人员从复杂的并发编程当中释放出来,专注于具体功能的实现.openmp 主要是通过编 ...