今日类容详细
- Python基本数据类型
- 与用户交互
- 格式化输出
- 基本运算符
- 多种赋值方式
- 逻辑运算符
- 成员运算符
- 身份运算符
今日内容详细
基本数据类型之布尔值 BOOl、
1.用来判断事物的对错是否可行,主要用于流程控制中
2.只有两种状态
Ture 对的,可行的,真的
False 错误的 不可行的,假的
3.python中所有数据值都自带布尔值
布尔值为False的数据有: 0 None ''(空字符串),[空列表] {空字典}
布尔值为True的数据有:除了以上的其他都是True
4.存储布尔值的变量名,一般推荐使用is作为开头
eg:is_delete =False
is_alive = True
ps:很多程序中提供的注销账户的功能,其实在计算机的底层并没有删除数据,而是修改了数据的状态
基本数据类型之元组tuple
1.元组也称为“不可变”的列表
元组类索引绑定的值的内存地址不能修改
2.语法结构:小括号括起来,内部存放多个数据值、数据值与数据值之间用逗号隔开,数据值可以是任何数据类型
3.代码实现
l1 = (11, 22, 33,‘Andy’)
4.元组与列表的对比
# 元组
l1 = (11, 22, 33)
print(l1[0]) # 用索引值0在列表取的值
l1[0] = 999 # 给变量名l1[0]换一个变量值
print(l1) # 最后的结果只会是保存
# 列表
# li = [11, 22, 'any']
# print(li[0]) # 11(用索引值0在列表取的值)
# li[0] = 999
# print(li) # [999, 22, 'any']
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.22,)
t3 = ('andy',)
print(tpye(t1),type(t2),type(t3)) # # <class 'tuple'> <class 'tuple'> <class 'tuple'>
"""ps:以后在使用可以存放多个数据值的数据类型时,如果里面暂时只有一个数据值时,那么建议 你加上逗号"""
数据类型之集合set
1.集合只能用于去重,和关系运算
2.集合内数据只能是不可变类型
3.语法结构:大括号括起来,内部存放多个数据值,数据值与数据值之间用逗号隔开,数据值不是K:V键值对
代码实现
li ={1, 2, 3, 4, 5, 6, 7, 8, 9}
定义空集合与空字典
{} 默认是字典
set()定义空集合
与用户交互
1.在以前到商场购买东西,需要到柜台去和收银员进行一些列的交流最后结账的这个过程就是人与人之间的交互
后来随着科技的发达出现了自动结账的机器代替了收银员与我们进行交互
2.获取用户输入的信息、
input
#获取用户输入
username= input(请输入您的用户名>>>:)
'''
1.先执行input获取用户名输入
2.将输入的数据绑定给一个变量名username
3.以后就可以在程序中反复使用该变量名来调用该用户的数据
PS:input获取到的数据都会统一处理成字符串类型
输出内信息部
1.print
括号内既可以放数据值也可以放变量名,并且支持多个逗号隔开即可
2.print自带换行模式
换行符:\r\n,\n(斜杠与字母组合到一起可能会产生一些特殊的含义)
3.print也可以切换结束符
print(数据,end=‘默认是\n’)
拓展小知识:
Python2与Python3中两个关键字的区别
Python2
input方法需要用户自己提前指定数据类型,写什么类型就是什么类型
aw_input
raw_input方法与Python3中input一致,输入的统一处理成字符串
Python2中
print的方法有两种
print 数据值
print(数据值)
格式化输出
提前定义好一些内容,将来在需要的时候,可以进行局部的修改然后来进行使用
eg;合同,奖状,
代码的实现
在现实生活中大部分的情况下使用下划线提示别人需要填写的内容。
但是在程序中则需要使用占位符:%s %d
info=‘%s同志你好’
'''单个占位符'''
两种写法:
print(info % 'Jason') # Jason同志你好
print('%s同志你好' % 'Tony') # Tony同志你好
print(info % ('jason',))
print('%s同志你好' % ('Tony',))
'''多个占位符'''
desc = '姓名:%s 年龄:%s 爱好:%s'
print(desc % ('jason', 18, 'read'))
print('姓名:%s 年龄:%s 爱好:%s' % ('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, 10000000000000))
demo2 = '%d您好 您本月的话费是%d 余额是%d' # %d只支持数字类型
print(demo2 % ('tony', 1000000000, -100000))
print(‘%08d’%1234)# 00001234 (%08代表着%占了8位数,如果输出的数字不够就用0来代替)
print(‘%08d’%123456789) # 1234566789
%08d虽然会占位置但是如果输出的数字位数多余占位也不会管它
基本运算符
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和n互相转换绑定的值
m = 100
n = 99
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
解压赋值
low的写法
name_list = ['jason', 'kevin', 'tony', 'oscar']
= name_list[3]
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 = name_list
逻辑运算符
主要配合条件一起使用 (and or not)
and与
可以对符号两侧的表达式进行与运算,它的两侧表达式的计算结果可以是 bool 类型,也可以是数字或者字符串。而且链接的多个条件必须都是成立的,结果才会成立
print(1>2 and 2<3) # False
print(2<3 and 11) # 11
print(1<2 and 2<3) #Ture
print(1 and 1<2) #Ture
or或
可以链接多个条件,但只要器中有一个条件成立,结果就为成立
print(1<2 or 2<3) #True
print(1<3 or 3>3) # False
print(10 or 10>9) #10
print(0 or 1) # 1
Print(0 or False) # False
not非
结果只有 True 和 False (取反,类似于说反话)
1.非运算会对其数据值取反操作,True 变 False,False 变 True。
2.字符串,有内容为True,空字符串为 False 。
3.数字,0 为 False ,其它 为 True 。
PS:三者混合使用的时候有优先级之分 但是我们不需要记忆优先级 应该通过代码的形式提前规定好优先级
eg: 通常在数学运算中都是先乘除有加减 但是可以使用括号来改变优先级
(3>4 and 4>3) or ((1==3 and 'x' == 'x') or 3 >3)
成员运算符
判断一个个体在不在一个群体内
ame_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) # Ture 字符串最小单位是单个单个的字符
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))
print(id(l2))
print(l1 is l2) # False
小整数池
i1 = 11
i2 = 11
print(i1 is i2) # Ture
s1 = 'jason jason jason'
s2 = 'jason jason jason'
print(s1 is s2)
不同的环境下可能优化的程度不一样