Python数据类型用户交互

基本数据类型

# 假设列表存储的是某个人的身份信息
info = ['lamb', 18, 'read', 18, 183, 189, 999]
列表存储信息有一个缺陷 无法明确的标明数据的指向

# 字典:dict
字典:能够非常精准的存储信息
    """
    大括号括起来 内存存放多个元素 元素与元素之间逗号隔开
    元素是以K:V键值对的形式存储
    	K是对V的描述性性质的信息 一般都是字符串
    	V是真是的数据类似于变量的值 可以是任意数据类型
    """
user_info = {
    'username':'lamb',
    'age':18,
    'hobby':'JD',
    'year':95
}
# 强调:字典是不支持索引取值的 因为字典内部是无序的
    
练习题:
data = {
    'username': 'lamb',
    'age': 18,
    'addr': ['北京', '上海', {'省份': [{'安徽': ['合肥', '芜湖'], '上海': ['张江', '青浦', '浦东']}, '河南', '山东']}]
}
# 利用索引和按k取值 获取lamb的家乡 芜湖
# 1.先获取键addr对应的值
big_list = data['addr']  # 存储addr对应的大列表
# 2.利用索引取值获取列表第三个元素
little_dict = big_list[2]  # 存储小字典
# 3.利用键获取值
little_list = little_dict['省份']
# 4.利用索引取值获取最终的字典
l1_dict = little_list[0]
# 5.利用键取值 再利用索引
print(l1_dict['安徽'][1])

# 后期熟练之后一行代码即可
print(data['addr'][2]['省份'][0]['安徽'][1])
下列图分解

数据类型之集合set

改数据类型功能很单一 并且后续使用的频率较低	去重、关系运算

# 大括号括起来 内部存放多个元素 元素逗号隔开 不是K:V键值对
a = {1,2,3,4,5,6}

如果大括号定义空的数据 那么默认是字典

数据类型之元组tuple

跟列表几乎一致 只不过使用的是小括号
元组一般存储一些只能看不能改的数据

小外号叫不可变的列表
"""
小括号括起来 内存可以存放多个元素 元素与元素之间逗号隔开 元素可以是任意数据类型
"""
t = (1, 2, 3, 4)

元组内数据不能'修改'
    l1 = [11, 22, 33]
    t1 = (11, 22, 22)
    print(l1[1], t1[1])
    l1[1] = 996
    修改成:l1 = [11, 996, 33]
    print(l1)
    t1[2] = 117  # 不能修改
    print(t1)

数据类型布尔值bool

只有两个状态
	True | False
布尔值是用来描述事物对错 是否可行的 主要用用于逻辑判断
	True 就是可以 可行的意思
    False 就是不可以 不可行的意思
    
"""
在Python中所有的数据在进行逻辑判断的时候都会转成布尔值
	布尔值默认为False的数据
		0 None 空字符串 空列表 空字典...
			其他情况布尔值都是True
"""

针对布尔值的变量名 一般采用is开头
    is_right = True
    is_delete = False
    is_alive = True

与用户交互

1.获取用户输入
	username = input('请输入您的用户名>>>:')
	# input获取到的用户输入都会转成字符串类型
2.输出内部数据
	print(username)
    	编写方式
        	方式1 先写print括号内写需要打印的东西
            方式2 先写需要打印的东西之后使用句点符跟print之后tab键即可
            username.p 然后直接tab键即可补充完整
     括号内还支持一次性打印多个数据 逗号隔开即可

格式化输出

# 提前定义好模板 之后修改特定的区域即可

'尊敬的xxx您好! 你银行卡余额是xxx,还剩余额为xxx'

# s = '尊敬的%s您好!你银行卡余额是%s,还剩余额为%s'
    print(s % ('lamb', 1000000, 99999999999999))
    print(s % ('tony', 100, 551))
    print(s % ('fuck', 10, 234))
    
	username = input('username>>>:')
	age = input('age>>>:')
print('my name is %s my age is %s' % (username, age))

	"""占位符:%s %d"""
	%s可以给任意数据占位
	%d只能给数字占位
    print('%08d' % 111)  # 00000111
    # 如果字数够则不会补,数不够就用0补上直到补齐8位
    # 后面的8代表的是八位数前面的0是没到8位用0补齐
    print('%08d' % 2)  # 00000002

运算符

乘(*)   除(/)  整除(//)   取余(%)   等于(==)

增量赋值
    x += 100  # x = x + 100
    x -= 100  # x = x - 100
    x *= 100  # x = x * 100
    x /= 100  # x = x / 100
链式赋值
    x = 100
    y = x
    z = x
    # 简化 x = y = z =100
    
交叉赋值
    m = 10
    n = 999
    # 让m指向n指向的值 让n指向m指向的值
    让m跟n的值互换!!!
    # m = n
    # n = m
    # print(m, n)  # 999 999
    tmp = m
    m = n
    n = tmp
    print(m, n)(这样可以但是不够完美)
    # 交叉赋值
    m, n = n, m(正确的交叉赋值写法)
    print(m, n)
    
解压赋值
     name_list = ['jason', 'kevin', 'tony', 'jerry']
     name1 = name_list[0]
     name2 = name_list[1]
     name3 = name_list[2]
     name4 = name_list[3]
    # 解压赋值(重要)
    # name1, name2, name3, name4 = name_list
    ! name1, name2 = name_list
    ! name1, name2, name3, name4, name5 = name_list
    """
    1.正常情况下 左右两边的变量名和值个数要相等
    2.也可以打破个数限制
    """
    l1 = [11, 22, 33, 44, 55, 66, 77, 88, 99]
    a, b, *_ = l1
    print(a, b, _)  # 11 22 [33, 44, 55, 66, 77, 88, 99]
    a, *_, b = l1
    print(a, b, _)  # 11 99 [22, 33, 44, 55, 66, 77, 88]
    """
    单独的下划线作为变量名 意思是为了符合语法 但是指向的值用不到的情况
    """

逻辑运算符

and	与
	连接多个条件必须都满足 结果才是True
    2 > 1 and 1 != 1 and True and 3 > 2
   # 2大于1属于True 1不等于1错,后面不用看,False
    
or	或
	连接多个条件只要有一个满足 结果就是True
    2 > 1 or 1 != 1 or True or 3 > 2
   # 2大于1属于True后面不用看 得True
    
not	非
	将条件翻转 True变为False False变为True
   # not True  是|不是   不是|是
"""
三者混合使用的时候是有优先级的 但是我们不需要记
应该人为的在编写初期就强制规定好顺序
	(3>4 and 4>3) or ((1==3 and 'x' == 'x') or 3 >3)
"""

成员运算,身份运算

# 成员运算
	判断个体在不在某个群体内
    name_list = [1,2,3,4,5]
    print(1 in name_list) # Ture
    print(6 in name_list) # False
    判断6是不是在群体里 不是 False
    
# 身份运算
	is:判断两个数据的内存地址是否一致
        ==:判断两个数据的值是否一致
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lamb!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值