python-Day4

内容详解

基本数据类型

# 假设列表存储的是某个人的身份信息
info = ['qiao', 18, 'read', 20, 183, 120, 98-11-3]
列表存储信息有一个缺陷 无法明确的标明数据的指向

image

*字典 ( dict )

能够非常准确的存储信息

'''
大括号括起来 内部存放多个元素,元素之间逗号隔开
元素是 以K : V 键值对的形式储存

K(key)是对V(value)的描述性性质的信息 一般都是字符串(即文本信息)

V(value)是真实的数据,类似于变量的值 ,可以是任意数据类型.

'''

user_info = {
	'username' : 'qiao',
	'age' : 18,
	'hobby' : 'sing',
	'year' : 98
}

集合 ( set )

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

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

元组 ( tuple ) ----> 不可变的列表

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

'''
用小括号括起来,内部存放多个元素,元素之间逗号隔开,元素可以是任意类型
'''
t = (1, 2, [44, 'hhah'], '多')
元组内数据不能'修改'

布尔值 ( bool )

只有两个状态:
	True
	False
布尔值是用来描述事物的对错 、是否可行,主要用于逻辑判断

    '''
    在python中所有的数据在进行逻辑判断的时候都会转成布尔值
    布尔值默认为False的数据有:
    	0 None 空字符串 空列表 空字典。。。。

    其他情况布尔值都是True
    '''

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

image

与用户交互

1. 获取用户输入--->input

eg:
	username=input('请输入你的名字>>>:')
    # input获取到的用户输入都会转成字符串类型

2. 输出内部数据--->print

eg:
	print(username)
    编写方式:
        1. 先写print括号内写需要打印的东西
        2. 先写需要打印的东西之后使用句点符跟print之后按tab键即可
     括号内还支持一次性打印多个数据,用逗号隔开即可
    print('name', 'age', 123)

格式化输出

提前编写好(定义好)模板,之后修改特定的区域即可

eg:
'亲爱的xxx你好!你xxx月的话费是xxx,余额是xxx'

# s = '亲爱的%s你好!你%s月的话费是%s,余额是%s'
# print(s % ('jason', 2, 100, 99999999))
# print(s % ('tony', 2, 800, -99))
# print(s % ('kevin', 2, 88, 10))

image

username = input('username>>>:')
age = input('age>>>:')
print('my name is %s my age is %s' % (username, age))

image

占位符

"""占位符:%s %d %f"""
%s --> 代表字符串 可以给任意数据占位
%d --> 代表十进制整数 只能给数字占位
%f --> 代表浮点数
    print('%08d' % 111)  # 00000111
    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与n
	m = 10
    n = 999

    # 让m指向n指向的值 让n指向m指向的值
    # m = n
    # n = m
    # print(m, n)  # 999 999

# 如果我们想将m与n的值交换过来,可以这么做
	tmp = m
    m = n
    n = tmp
    print(m, n)  # 999 10
    # 交叉赋值
    m, n = n, m  #这一行代码就可以做到交换他们的值
    print(m, n)  # 10 999

image

*解压赋值

>>>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

image

    """
    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]
    """
    单独的下划线作为变量名,是为了符合语法,但是指向的是值用不到的情况
    """

image

逻辑运算符

and-->与:

   连接多个条件都必须满足 结果才是True
   >>> 2 > 1 and 1 != 1 and True and 3 > 2 # 判断完第二个条件,就立即结束,得的最终结果为False
False

or-->或:

   连接多个条件只要有一个满足 结果就是True
   >>> 2 > 1 or 1 != 1 or True or 3 > 2 # 判断完第一个条件,就立即结束,得的最终结果为True
True

not-->非:

   将条件反转:
   	True变为False
   	False变为True

混用and、or、not:

"""
三者混合使用的时候是有优先级的
可人为的在编写初期强制规定好顺序
	主动加上括号区分
"""
   >>> (3>4 and 4>3) or ((1==3 and 'x' == 'x') or 3 >3)
False

成员运算

判断个体在不在某个群体内

    name_list = ['jason', 'kevin', 'tony', 'oscar', 'jerry', 'owen', 'tank']
    print('jason' in name_list)  # True
    print('jason' not in name_list)  # False

image

身份运算

is : 判断两个数据的内存地址(id)是否一致 
== : 判断两个数据的值(value)是否一致

image

posted @ 2022-03-04 17:55  camellia_seed  阅读(113)  评论(0编辑  收藏  举报