Python数据类型+运算符
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数据类型+运算符的更多相关文章
- 跟着ALEX 学python day2 基础2 模块 数据类型 运算符 列表 元组 字典 字符串的常用操作
声明 : 文档内容学习于 http://www.cnblogs.com/xiaozhiqi/ 模块初始: Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相 ...
- Python学习笔记----数据类型 运算符 循环 条件判断
1. Python安装 在官网www.python.org下载安装程序,可以支持的操作系统linux,windows,mac. Python版本:2.x和3.x,分别有x86和x64. 在Window ...
- python基础[1]——python运算符&python数据类型之数值型
python常用运算符&数字&布尔值 上节回顾 一.变量名和标识符 变量名的命名规范 (1)只能包含数字,字母和下划线 (2)只能以字母和下划线开头(不能以数字开头) (3)标识符是区 ...
- python数据类型一:字符串
Python 字符串 字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符串很简单,只要为变量分配一个值即可.例如: var1 = 'Hello W ...
- 二、Python数据类型(一)
一.Python的基本输入与输出语句 (一)输出语句 print() 示例: print('你好,Python') print(4+5) a = 10 print(a) 输出的内容可以是字符串,变量, ...
- 【转】Python数据类型之“文本序列(Text Sequence)”
[转]Python数据类型之“文本序列(Text Sequence)” Python中的文本序列类型 Python中的文本数据由str对象或字符串进行处理. 1.字符串 字符串是Unicode码值的不 ...
- #6 Python数据类型及运算
前言 前文讲述了Python的输入输出以及变量的相关知识点,本节将探讨Python的数据类型以及数据之间的运算方式! 一.Python数据类型 上一节弄清了变量,其实变量所指向的值是有自己独特的数据类 ...
- python 数据类型详解
python数据类型详解 参考网址:http://www.cnblogs.com/linjiqin/p/3608541.html 目录1.字符串2.布尔类型3.整数4.浮点数5.数字6.列表7.元组8 ...
- 【转】Python数据类型之“集合(Sets)与映射(Mapping)”
[转]Python数据类型之“集合(Sets)与映射(Mapping)” 一.集合类型(Sets) 集合对象是不同的(不可重复)hashable对象的无序集合.常见用法包括:成员关系测试.移除序列中的 ...
- python基础(三)python数据类型
一.数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需 ...
随机推荐
- MinIO监控指南
官方文档地址:http://docs.minio.org.cn/docs/master/minio-monitoring-guide MinIO服务器通过端点公开监视数据.监视工具可以从这些端点中选择 ...
- 详细说明-CentOS7部署FastDFS+nginx模块(包含集群方式)
软件下载 # 已经事先把所需软件下载好并上传到/usr/local/src目录了 https://github.com/happyfish100/libfastcommon/archive/V1.0. ...
- 为不同的用户生成不同的 Kibana 界面
文件转载自:https://elasticstack.blog.csdn.net/article/details/109593613
- 为什么 CRM 能帮助装备制造企业进行数字化转型?
CRM确实能帮助装备制造企业进行数字化转型,体现在销售管理端,能方便的服务于"客户需求"为主旨的数字化转型思想,用客户的需求来指导生产等.但这个说法有点片面,毕竟那只是客户管理部分 ...
- count(*), count(1), count(列名)的区别
1.从结果上来看 count(1)和count(*)之间没有区别,因为count(*)count(1)都不会去过滤空值,但count(列名)就有区别了,因为count(列名)会去过滤空值. 2.从执行 ...
- POJ2728 Desert King (最小生成树、0/1分数规划)
显然的0/1分数规划问题,用二分来解决,检验mid,就用prim算法求最小生成树,看总边权是否大等于0即可验证. 1 #include<bits/stdc++.h> 2 using nam ...
- POJ3260 The Fewest Coins(混合背包)
支付对应的是多重背包问题,找零对应完全背包问题. 难点在于找上限T+maxv*maxv,可以用鸽笼原理证明,实在想不到就开一个尽量大的数组. 1 #include <map> 2 #inc ...
- JavaScript基本语法(数组与JSON)
5.数组 #①使用new关键字创建数组 // 1.创建数组对象 var arr01 = new Array(); // 2.压入数据 arr01.push("apple"); ar ...
- settings.py 配置汇总
数据库配置: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 数据库引擎 'NAME': ' ', #数据库名称 ...
- yum 更新yum源
yum 更新yum源 # 1.做好备份,防止更新失败时切换回去 $ mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base. ...