python数据类型和运算符

python

数据类型

基础数据类型之布尔值bool

+布尔值bool

用来判断事物的对错,是不是可行。主要用于流程控制中
  • 只有两种形态
1. True 对的,真的,可行的
2. False 错的,假的,不可行的
  • python中所有的数据都自带布尔值
布尔值为False的数据有: 0 None '' [] {}
布尔值为True的数据有: 除了上面都是True
  • 存储布尔值变量名一般用is开头
is_delete = False
is_alive = True

image

基本数据类型之元组tuple

  • 元组tuple
  也称为'不可变'的列表,元组内索引绑定的内存地址不能被修改
   小括号括起来的是元组,内部可以存放多个数据值,数据值与数据值之间逗号隔开,数据值可以是任何数据类型

image

  • 元组与列表的对比
列表
t1 = [1, 2, 3, ]
print(t1[0]) #获取索引0对应数据值 1
t1[0] = 123 #把t1的索引0对应数据值修改成123
print(t1) # 结果 [123.2.3]
元组
t1 = (1, 2, 3, [4, 5, ])
t1[1] = 234 # 把t1的索引1对应的值改成234
print(t1) #直接报错 
ps: 元组内数据不可替换
t1[3][1] = 234 # 把t1的索引3里对应的索引1 改成234
print(t1) #结果(1, 2, 3, [4, 234]) 
ps: 元组内的列表数据可以替换

image

image

  • 元组内如果只有一个数据值
a = (2, )
b = (3, )
print(type(a), type(b), ) #结果为<class 'tuple'> <class 'tuple'>
ps:以后在使用可以存放多个数据值得数据类型时,如果里面只有一个数据值建议你加上逗号 # 好习惯靠养成

image

基本数据类型之集合set

主要功能为去重和关系运算 # 大括号括起来,内部存放多个数据值,数据值与数据值之间用逗号隔开,但数据值没有以k:v键值对的方式存在,如果大括号内没有数据,则会被优先定义为字典
{}   默认是字典
set() 自定义集合

image

与用户交互

  • 获取用户输入
input # 获取用户输入
age = input('请输入身高>>>:') # 将输入的数据值绑定给变量名age
"""以后在程序中就可以使用变量名来反复调用用户的数据,input获取到的数据都会统一处理成字符串类型"""

image

  • 输出内部信息
print # 输出
print() 
1. 括号内既可以放数据值也可以放变量名并且支持多个,逗号隔开即可
2. print自带换行符
  换行符: \r\n # 以前需要输入\r\n 
         \n #现在优化了,只用输入\n
3. print也可以自己切换结束符
print(数据值, end='默认是\n')
  • input print在python2中的区别
input在python2中需要自己先指定数据类型。
i1 = input('请输入内容>>>: ')
请输入内容>>>: 'tony'
# 还有一个方法raw_input('请输入内容>>>: ')就可以不用先指定数据类型,输入的统一处理成字符串
print在python2中可以不写print直接写变量名
name = 18
name # 输出数据值18
print name # 输出数据值18

格式化输出

  • 需要提前设置好模板,在需要使用的时候可以局部修改。
在程序中需要使用占位符 %s %d

单个占位符使用方法

a = '%s您好'
print(a % '老六')  # 老六您好
print('%s您好' % '老七')  # 老七您好
print(a % ('六哥',))  # 这样也可以修改,参考多个占位符

image

多个占位符使用方法

a = '%s您好,您此次任务需要阴6%s个人,还剩%s个人'
print(a % ('六哥', 7, 5,)) # 六哥您好,您此次任务需要阴7个人,还剩5个人
print(a % ('六哥', 7, 2,)) # 六哥您好,您此次任务需要阴7个人,还剩2个人

image

不同占位符的区别

%s 常见的数据类型都支持
%d 只支持数字类型
print('%d' % 222) # %d为 222
print('%d' % 1234567) # %d为 1234567
'%08d' # 08的意思是总共展示8位数,可以根据实际情况修改 ,不足8位的用0填充 ,如果超出8位按实际位数来

基本运算符

数学运算符

 加(+)、减(-)、乘(*)、除(/)、整除(//)、取余(%)、幂赋值运算(**)
代码写法      
 n = 6 
 n += 2 # n = n + 2 
 n -= 2 # n = n - 2
 n *= 2 # n = n * 2
 n /= 2 # n = n / 2 
 n //= 2 # n = n // 2 
 n %= 2 # n = n % 2  
 n **= 2 # n = n ** 2

比较运算符

< > <= >= ==(等于) !=(不等于)

常用赋值符

链式赋值

  • 可以使用链式赋值给多个变量名快速修改数据值
a = 60
b = a
c = b
a = b = c = 6 #  简化写法
print(a, b, c, ) # 6 6 6

image

交叉赋值

  • 可以快速让 不同的变量名转换绑定的变量值
a = 40
b = 30
temp = a
a = b
b = temp
print(a, b, ) # 30 40
"""简化写法
a, b = b, a
print(a, b, )""" # 30 40

image

解压赋值

1. 正常情况下 左右两边的变量名和值个数要相等
"""复杂代码
q = a[0]  w = a[1] e = a[2] r = a[4]
"""
a = ['b', 's', 'd', 'f', ]
q, w, e, r = a  
print(q, w, e, r ) # b s d f
2. 也可以打破个数限制
a = ['b', 's', 'd', 'f', ] 
q, *w = a 
print(q) # b
print(w) # ['s', 'd', 'f']
'''数据值不准备使用的时候可以用下划线作为变量名  '''
q, *_= a 

image

逻辑运算符

and 与
连接的多个条件必须全部成立 结果才成立
2 > 3 and 4 < 5 and 7 < 1 and 2 
"""如果发现条件中都是and组成 那么如果里面有一个不成立 结果就不成立 2 > 3  不成立 那么结果就不成立"""
print(1 < 2 and 111) # 111 成立
print(1 > 2 and 222) #false 不成立
print(11 and 22) # 22 成立
print(1 < 2 and 2 > 1) # True 成立
如果and左边的条件是成立的 那么久完全取决于右边的条件 右边的如果直接是数据值那么结果就是该数据值,如果是表达式 则位布尔值

image

or 或
连接的多个条件只要有一个成立那么结果就成立
print(1 > 2 or 2 < 1 or 3 > 2) # True 成立
发现一个成立 结果就成立
print(1 < 2 or 2 > 1)  # True 成立
print(1 < 2 or 666)  # True 成立
print(3 > 4 or 666)  # 666 成立
print(0 or 222)  # 0对应的是False 不成立则222成立

image

not 非
将条件翻转
print(not 1 > 2) # 1 > 2 是不成立的,用not反转后使结果True成立

image

成员运算符

  • 判断个体在不在一个群体里面
a_list = ['tony', 'tank', 'johnny', ]
print('johnny' in a_list)  # True 成立  
'''列表最小单位是数据值 不能缩写''
a1 = {'name': 'johnny',
      'age': 28}
print('johnny' in a1)  # False 不成立,因为在字典里只能按K取值
print('name' in a1) # True 成立

image

身份运算符

  • 判断两个数据值的内存地址是否相同
id() 返回数字该数字是内存地址
is 判断内存地址是否相同
== 判断数据值是否相同
a2 = [1, 2, 3, 4, 5, 6, 7, ]
print(a1 == a2)  # a1 a2 数据值是否相同  True
print(id(a1))  # 返回a1的内存地址
print(id(a2))  # 返回a2的内存地址
print(a1 is a2)  # 判断a1 a2 的内存地址是否相同,False
"""
数据值相同 内存地址可能不相同
内存地址相同 数据值肯定相同
"""

image

作业:

	获取用户输入并打印成下列格式
    ------------ info of Jason -----------
    Name : Jason
    Age  : 18
    Sex  : male
    Job  : Teacher 
    ---------------- end -----------------
优化方法
# 1.先制定一个打印的模板
    info_demo = """
        ------------ info of %s -------------
        Name : %s
        Age  : %s
        Job  : %s 
        ---------------- end -----------------
    """
    # 2.获取用户输入
    username = input('username>>>:')
    age = input('age>>>:')
    job = input('job>>>:')
    # 3.格式化输出
    print(info_demo % (username, username, age, job))

image

v1 = 1 or 3   # 1  or只要有一个成立那么结果就是成立     
v2 = 1 and 3  # 3 and只要有一个条件成立那么就取决于and右边的数据值 如果右边的是表达式则是布尔值
v3 = 0 and 2 and 1 # 0 Flase and左边0不成立 0代表Flase
v4 = 0 and 2 or 1 # 1 or 1结果成立
v5 = 0 and 2 or 1 or 4 # 1 or 1成立所以不用往后看了
v6 = 0 or False and 1 # 0代表False False and 1中False不成立 
posted @ 2022-09-26 20:15  李阿鸡  阅读(56)  评论(0编辑  收藏  举报
Title