day04

花式赋值

链式赋值

a = b = c = 10
print(a, b, c)

交叉赋值

x = 10
y = 20
z = y
y = x
x = z

print(x,y)

列表(list)

列(序列)表(表格),一列(存储多个元素)表格描述一个人的

爱好:read/run/music

存不是目的,取才是目的

hobby = 'read run music'
  1. 作用:存储多个(任意数据类型)元素

  2. 定义方式,[]内用逗号隔开多个元素(任意数据类型)

    yuyang_hobby_list = ['bibi', 'zantong', 'jiao', 'niuyangge', [160, 150], 160]
    
  3. 使用方法

    索(搜索)引(引路)

    yuyang_hobby_list = ['bibi', 'zantong', 'jiao', 'niuyangge', [160, 150], 160]
    #                     0        1           2      3               4       5
    #                                         -4      -3             -2      -1
    
    print(yuyang_hobby_list[1])
    print(yuyang_hobby_list[5])
    print(yuyang_hobby_list[-1])
    print(yuyang_hobby_list[-2])
    print(yuyang_hobby_list[-2][-1])
    

字典(dict)

字典是另一种可变容器模型,且可存储任意类型对象。

值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

user_info = ['nick', 'male', '19', ['oldboy', 'shanghai', 50]]

print(user_info[1])  # 'male'
print(user_info[0])  # 'nick'
print(user_info[3][1])  # 'shanghai'
  1. 作用:存储多个值,但是每个值都由描述信息,按照key:value的方式存值,取的时候可以通过key而非索引去取值,key对value具有描述性的作用。存放数据的种类各种各样并且数据较多的时候可以使用字典。

  2. 定义方式

    在{}内用逗号分隔开多个元素,每一个元素都是key: value的格式,其中value是任意格式的数据类型,key由于具有描述性的作用,所以key通常是字符串类型。

    user_info = {'name': 'nick', 'gender': 'male', 'age': 19,
                 'company_info': ['oldboy', 'shanghai', 50]}
    
    print(id(user_info))
    print(type(user_info))
    print(user_info)
    
  3. 使用方法

    字典没有索引,而是依赖于key,通过[key]即可获取key对应的value值。

    # 字典套列表
    user_info = {'name': 'nick', 'gender': 'male', 'age': 19,
                 'company_info': ['oldboy', 'shanghai', 50]}
    print(user_info['name'])
    print(user_info['company_info'][0])
    

布尔类型(bool)

  1. 作用

    用于判断条件结果

  2. 定义方式

    True、False通常情况不会直接引用,需要使用逻辑运算得到结果。

  3. 使用方法

print(type(True))
print(True)

<class 'bool'>
True

所有数据类型都自带布尔值

除了 0/None/空(空字符/空列表/空字典)/False 之外

所有数据类型自带布尔值为True。

print(bool(1))
print(bool(0))
print(bool(''))
print(bool([]))
print(bool({}))
print(bool(None))

解压缩

解压缩可以这样理解:超市打包是把多个商品放在一起,解压缩其实就是解包把多个商品一次性拿出来。解(解开)压缩(容器类数据类型):只针对2-3个元素容器类型的解压

lt = [1, 2, 3, 4, 5]
print(lt[1],lt[2],lt[3])

s1,s2,s3,s4,s5 = lt
print(s1,s2,s3,s4,s5)

单个下划线表示这个东西不需要(约定俗成)

s1,_,_,_,_ = lt
print(s1)
print(_)  # 可以打印,但是不要去打印
s1,*_,s5 = lt
print(s1)
print(_)

#    *_:    *把后面的元素全部合成放到列表里去了

python与用户交互

  • 为什么要交互

    让我们来回顾计算机的发明有何意义,计算机的发明是为了奴役计算机,解放劳动力。假设我们现在写了一个ATM系统取代了柜员,如果我们要在这台ATM上取款,那么这个ATM是不是会要求我们输入姓名、密码?是不是需要我们输入我们需要取款金额?这是不是就可以理解为一种交互。现在让我们了解下Python是怎么实现交互的。

  • 如何交互

    无论我们输入的值是数字类型、字符串类型、列表类型,input的接收值都是字符串类型。

    1. 可以让程序暂停 2. 接收的永远是字符串

    print('*' * 50)
    s = input('kkk')  
    让程序暂停# s = input('请输入你的身高:')
    
  • python2的交互

    python2当中的raw_input()和python3中的input()是一模一样的。

    name = raw_input('请输入你的姓名:')
    pwd = raw_input('请输入你的密码:')
    
    print(type(name))  # 'str'
    print(type(pwd))  # 'str'
    

    Python3的交互相比较于Python2应该是更合理的,虽然Python3的交互在程序中使用是麻烦了,因为如果输入年龄还需要强制转换,但是如果用python2的input,用户需要知道自己输入的数据是什么数据类型的,对用户不友好,如此写出的程序可能明天就没人使用了。

    python2和python3中input的区别
    
    python2和python3多版本共存
    
    python.exe复制粘贴一份,然后重命名为python2.exe/python3.exe
    
    更换python解释器
    
    file --> settings --> project --> project interpreter
    

格式化输出的三种方式

  • 占位符

    %s(针对所有数据类型)%d(仅仅针对数字类型)

    name = 'nick'
    age = 19
    print('my name is %s my age is %s' % (name, age))
    
    age = 19
    print('my age is %d' % age)
    
  • fomat格式化

    print('{} {}'.format(s1,s2)) # s1-->0 s2-->1
    print('{1} {1}'.format(s1,s2))
    
  • f-strinq格式化

    相比较占位符的方式,python3.6版本新增了f-String格式化的方式,比较简单易懂,这是目前我用的最多的方式,推荐使用这种方式

    大写的F也适用

    name = "nick"
    age = 19
    print(f"Hello, {name}. You are {age}.")
    

    Hello, nick. You are 19.

    name = "nick"
    age = 19
    print(F"Hello, {name}. You are {age}.")
    

    Hello, nick. You are 19.

上节课回顾

变量
  什么是变量
  变量的组成
  变量名的命名规范
常量
python变量内存管理
   引用计数(变量值)
   垃圾回收机制
   小整数池
变量的三种打印方式
数字类型
   整数int
   浮点型 float
字符串 str
原文地址:https://www.cnblogs.com/gfhh/p/11497538.html