首页 > 其他分享 >数据类型与逻辑运算

数据类型与逻辑运算

时间:2022-09-26 21:58:58浏览次数:49  
标签:逻辑运算 name list 数据类型 运算符 print input True

数据类型与逻辑运算

数据类型

数据类型分为整型、浮点型、列表、字符串和字典

整型 Int

大白话就是整数

应用场景:年龄、班级人数

eg:    
 name = 'kevin'
 age = 18
 stu_sum = 56

浮点型 Float

用计算机语言就是小数的数据值

应用场景:身高、体重

eg:
name = ’kevin'
haight = 1.65
weight = 45.6

字符串 String

用计算机语言就是文本的数据类型:引号引起来的部分都是字符串

引用场景:姓名

eg:
name = '康辉'
addr = '北京'
Bobby = '看书'

定义字符串有四种方式

eg:
['小七', '小五', '张三']
[11,22,33,44,55,66,77]

索引值对应的数据值
[11,22,33,44,55,66,77]
[0,1 ,2,3,4,5,6]

字典 Dict

字典一般是以键值对(k:v)的形式存在,一般只要取到键值对的k,对应就是v的值,键值对与键值对之间逗号隔开,字典是无序

eg;
{'name':'kevin',
'age':16
'year':18
'hometown':'云南'}

布尔常量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.代码实现:

eg:	a1 = (1, 24, 'kevin')

4.元组与列表的对比


l = [11,22,33]
print(l[0])  # 获取0对应的值
l[0]=666
print(l)  # [666, 22, 33]

b = (11, 22, 33)
print(b[0])  # 获取0对应的值
b[0] = 888
print(b)  # 报错

注意:元组是不可变的列表

eg: B
c = (11, 22, [345, 566])
c[2][1] = 888
print(c)    # (11, 22, [345, 888])

"""
A.直接报错
B.(11, 22, [345, 888])
C.不知道,超出了我的认知

5.元组内如果只有一个数据值

# 元组内只有一个数据值
# 第一种情况下
d1 = (1)
d2 = (22.22)
d3 = ('kevin')
print(type(d1), type(d2), type(d3))   # <class 'int'> <class 'float'> <class 'str'>

# 第二种情况下
d4 = (1,)
d5 = (22.22,)
d6 = ('kevin')
print(type(d4), type(d5), type(d6))  # <class 'tuple'> <class 'tuple'> <class 'str'>


以后在使用可以存放多个数据值的数据类型时,如果里面暂时只有一个数据值,那么也建议你加上逗号

集合set

  1. 集合只能用于去重和关系运算

    ​ 后面详细讲

  2. 集合内数据只能是不可变类型

    ​ 后面详细讲

  3. 大括号括起来,内部存放多个数据值,数据值与数据值之间逗号隔开,数据值不是k:v键值对

  4. 代码的实现

    eg:
    a1 = {1, 2, 3, 4, 5, 6}
    
  5. 定义空集合与空字典

      {}      默认是字典
      set()   定义空集合
    
eg:
k1 = {}
k2 = {}
se =set()
print(type(k1))  # <class 'dict'>
print(type(k2))  # <class 'dict'>
print(type(se))  # <class 'set'>

空集合一定要set()

与用户交互

"""
以前银行取钱只能拿着存折去柜台跟柜姐交流才可以
	你想干嘛 我想取钱 
	请输入密码 滴滴滴密码
	想取多少钱 我想取一万
	...
随后程序代替了小姐姐跟我们交互
	ATM机器
"""
  1. 获取用户输入,使用input

    input  # 获取用户的输入
    
    username = input('请输入您的用户名:')  #请输入您的用户名:花花
    
    """
    1.先执行input 获取用户输入
    2.将输入的数据绑定给变量名
    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:
    		input  #获取数据
            date = input('请输入数据:')
            print(type(date))  # 得到的是字符串<class 'str'>
    

    print自带换行符

    斜杠n

格式化输出

提前定义好一些内容,将来需要使用的时候可以局部修改

​ eg: 奖状、录取通知书、合同

代码实现:

现实生活中用下划线提示别人要填写的内容

在程序中需要使用占位符: %s %d

"""
单个占位符
"""
info = '%s同学您好'
print(info % 'kevin' )  # kevin同学您好
print('%s 同学你好' % '小七')  #小七 同学你好
print('%s 朋友你好' %('kiki',))  # kiki 朋友你好

"""多个占位符"""
dr = '姓名:%s, 年龄:%s, 爱好:%s'
print(dr % ('kimi', 18,'listening'))  # 姓名:kimi, 年龄:18, 爱好:listening
print('姓名:%s, 年龄:%s, 爱好:%s' %('kiki', 18, '画画'))  # 姓名:kiki, 年龄:18, 爱好:画画
注意事项:
print('my name is %s my age is %s' % ('kiki',))  #少了不行
print('my name is %s my age is %s' % ('kiki',18, 'read'))  #多了也不行

"""不同占位符的区别"""
demo1 = '%s 您好,你的银行余额为%s,请确认你的预留手机号%s'
print(demo1 % ('kimi',234555,1318655))  # kimi 您好,你的银行余额为234555,请确认你的预留手机号1318655

%s 常见的数据类型都支持
%d 支持数字类型


demo1 = '%d 您好,你的银行余额为%d,请确认你的预留手机号%d'
print(demo1 % ('kimi',234555,45))  #  %d format: a number is required, not str



print('%08d'% 123)  # 00000123
print('%08d'% 1234324324)  # 1234324324

运算符

基本运算符

算数运算符

python支持的算术运算符与数学上计算机的符号使用是一致的,并在此基础稍作变化

运算符 描述 实例
= 简单的赋值运算符 c=a+b将z+b的运算结构赋值为c
+= 加法赋值运算符 c += a 等效于c = c+ a
-= 减法赋值运算法 c -= a 等效于c = c- a
*= 乘法赋值运算符 c *= a 等效于c = c *a
/= 除法赋值运算符 c /=a 等效于c = c /a
%= 取模赋值运算符 c % = a 等效于 c = c %a
**= 幂赋值运算符 c **= a 等效于c = c **a
//= 取整数赋值运算符 c//= a 等效于c = c//a

比较运算符

比较运算用来对两个值进行比较,返回的是布尔值True 或False

比较运算符 名称 实例 结果描述
== 等于 x==y 如果x恰好等于y,则为真
!= 不等于 x!=y 如果x恰好不等于y, 则为真
> 大于 x>y 如果x大于y,则为真
< 小于 x<y 如果x小于y,则为真
>= 大于或等于 x>=y 如果x大于或等于y,则为真
<= 小于或等于 x<=y 如果x小于或等于y,则为真

常用运算符

链式赋值

name = 'kevin'
name1 = name
name2 = name1
# 链式赋值
print(name2)  #name2= name1 = name='kevin'

链式赋值可以用一行代码搞定这件事
a=b=c=10
print(a,b,c)  #(10,10,10)

交叉赋值

如果要想把m和n的值交换过来,可以这么做

# 方式1:采用中间变量
temp = m
m = n
n = temp
print(m,n)  #100 200

# 方法2: 交叉赋值语法
m, n= n, m
print(m,n)  #100 200

解压赋值

name_list = ['amy', 'kiki', 'aby', 'kevin' ]
"""low 的写法"""
name1 = name_list[0]
name2 = name_list[1]
name3 = name_list[2]
name4 = name_list[3]
print(name1, name2, name3,name4)

""" 解压赋值语法"""
name1, name2, name3, name4 = name_list
print(name1, name2, name3,name4)

""" 解压赋值在使用的时候,正常情况下需要保证左边的变量名和右边的数据值个数一致"""
name1, name2 =name_list  #变量名少了不行>>>:ValueError: too many values to unpack (expected 2)
name1, name2, name3, name4, name5 = name_list  # 变量名多了也不行>>>:ValueError: not enough values to unpack (expected 6, got 5)

"""当需要解压的数据个数特别多,并且我们只需要使用其中的几个,那么可以打破上述的规则"""
a, *b = name_list  # * 会自动接收多余的数据,组成列表赋值给后面的变量名
print(a,)  # amy
print(*b)  # kiki aby kevin
c, d, *k = name_list
print(c)  # aby
print(d)  # kiki
print(*k)  # aby kevin
e, *f, g =name_list
print(e)  # amy
print(*f)  # kiki aby
print(g)  # kevin

""" 当数据值不准备使用的时候,可以使用下划线作为变量名绑定"""
a,*_,c = name_list

ps:字符串、字典、元组、集合类型都支持解压赋值

逻辑运算符

逻辑运算符用于连接多个条件,进行关联判断,会返回布尔值True或False

链接多个and

​ 可以用and连接多个条件,会按照从左到右的顺序依次判断,一旦某一个条件为False,则无需再往右判断,可以立即判定最终结果就为False,只有在所有条件的结果都为True的情况下,最终结果才为True。

	print(1 < 10 and 666)  # 666  成立
    print(1 < 10 and 2 < 8)  # True  成立
    print(111 and 222)  # 222  成立
    如果需要你准确的说出具体的结果值  那么需要按照下列方式
    如果and左边的条件是成立的 那么就完全取决于右边的条件
    右边如果直接是数据值 那么结果就是该数据值 如果是含有表达式 则为布尔值

多个or

可以用or连接多个条件,会按照从左到右的顺序依次判断,一旦某一个条件为True,则无需再往右判断,可以立即判定最终结果就为True,只有在所有条件的结果都为False的情况下,最终结果才为False

  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
    规律用and

not 非
取反
类似于说反话

三种混用

"""
三者混合使用的时候有优先级之分 但是我们不需要记忆优先级 应该通过代码的形式提前规定好优先级
	eg: 先乘除有加减  但是可以使用括号来改变优先级
	(3>4 and 4>3) or ((1==3 and 'x' == 'x') or 3 >3)
"""

成员运算符

name_list = ['jason', 'kevin', 'oscar', 'jerry']
print('kiki' in name_list)  # False
print('kiki' not in name_list)  #True
print('j' in name_list)  # False 列表最小单位是数据值再细分

s1 = 'hello world'
print('d' in s1)  #字符串最小单位是单个单个的字符

d1 = {
      'username': 'kiki',
      'pwd': 1318888
}
print('kiki' in d1)  # False 字典成员运算只有键参与
print('username' in d1)  # True      'username' 'pwd'

身份运算符

需要强调的是:==双等号比较的是value是否相等,而is比较的是id是否相等

"""
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))  # 1938852130688
print(id(l2))  # 1938851977152
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
不同的环境下可能优化的程度不一样 

"""
了解
    值相同 内存地址可能不同
    内存地址相同 值肯定相同
"""

作业:

问题:2.获取用户输入并打印成下列格式
	 ------------ info of Jason -----------
    Name : Jason
    Age  : 18
    Sex  : male
    Job  : Teacher 
    ---------------- end -----------------
    
    
答案:
# 第一版本
print('------------ info of Jason -----------')
input('Name:')
input('Age:')
input('Sex:')
input('Job:')
print(' ---------------- end -----------------')

# 第二版本
user_name = input('请输入您的用户名:')
user_age = input('请输入您的年龄;')
user_sex = input('请输入您的性别:')
user_jod = input('请输入您的工作:')
t1 = (user_name, user_name, user_age, user_sex, user_jod)
print('------------ info of %s -----------\n'
      'Name:%s\n'
      'Age:%s\n'
      'Sex:%s\n'
      'Job:%s\n'
      ' ---------------- end -----------------' % t1)

标签:逻辑运算,name,list,数据类型,运算符,print,input,True
From: https://www.cnblogs.com/zhanglanhua/p/16732626.html

相关文章

  • 幂运算逻辑运算位运算
    //幂运算  很多运算都需要工作类来操作Doublepow=Mathpow(2,3);System.out.println(pow);逻辑运算符//与(and)或(or)非(取反)booleana=true;booleanb=false;......
  • python基本数据类型二
    python基本数据类型二1.布尔值bool描述用于判断事物的对错,是否可行,主要用于流程控制状态只有两种状态True和falseTrue对的,真的,可行的False错的,假的,不可行......
  • Python数据类型+运算符
    Python基础数据类型上期练习讲解#练习一.想办法打印出jasonl1=[11,22,'kevin',['tony','jerry',[123,456,'jason']]]#解题思路,先看列表中有几个数......
  • 基本数据类型(补)及各种运算符
    1、昨日内容回顾python注释编写注释意义、注释添加方法变量的赋值赋值基本原理变量的使用命名原则、编写风格常量的使用常量的命名python常见数据......
  • 基本数据类型
    数据类型在记录变量或者常量时,数据值需要合适的类型进行记录,比如等级可以用数字记录,比如名字需要用文字记录,在python中,有几个常用的数据类型需要掌握,能帮助我们更好的......
  • MYSQL数据类型
    MYSQL数据类型介绍一、MYSQL的数据类型主要包括五大类:整数类型:BIT、BOOL、TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT浮点类型:FLOAT、DOUBLE、DECIMAL字符串类型......
  • 数据类型,bool,tuple,set,用户交互,格式化输出,运算符
    基本数据类型之布尔值bool1.用来判断事物的对错是否可行只要用于流程控制中2.只有两种状态True对的真的可行的False错的假的不可行的3.python中所有......
  • python入门第四课--数据类型、格式化输出、基本符号的意义
    今日内容概要作业讲解python基本数据类型与用户交互格式化输出基本运算符多种赋值方式逻辑运算符成员运算符身份运算符流程控制理论今日内容详细作业讲......
  • Mysql---数据类型
    数据类型概述  charactersetname:创建数据库时createdatabasedbtest characterset'utf8';创建数据库未指明......
  • TS声明promise返回来的数据类型
    promise返回来的数据类型interfacebackResult{code:number,data:{name:string,age:number}[],//数组里面的对象类型,这里使用的是类型message:string......