zoukankan      html  css  js  c++  java
  • python数据类型

    今天还玩了会win10的用户权限,开起来guest来宾账户,也设置了了一个标准用户修改权限来限制它,玩了大概一个小时,发现完全看不懂设置权限,感觉设置了不能修改,标准用户还是能修改,不知道是不是因为我的win10是盗版的问题。还试了一下文件夹加密,加密显示,只有我自己的管理员帐户才能访问,但到了标准用户还是能访问,去百度也没有什么很好的解释,重启之后,我自己的管理员帐号也不能访问,也查不出原因,感觉和win10斗智斗勇的很有趣。以后有时间弄得恍然大明白再来分享

    01 数据类型基础

    什么是数据类型

    数据类型:不同种类的变量值用不同的数据类型描述

    再让我们来回顾一下变量是什么:变量是来记录世界的状态。

    那么如果用计算机中的变量去记录我的这些状态,我的年龄可以用19去记录,但是我的姓名可以使用数字去记录吗?我的爱好可以用数字去记录吗?如果你说你年龄的时候,你又会用18.5岁去形容你的年龄吗?可想而知,你是不会这样做的。

    对数据的分类

    变量的是用来反映状态以及状态变化的,毫无疑问针对不同的状态就应该用不同类型的数据去标识。

    不同数据类型

    数字类型
    字符串
    列表
    字典
    布尔值

    02 数字类型

    整形(int)

    作用

    表示人的年龄、各种号码、级别

    定义

    age = 18 or age = int(18)

    age = 18  # age=int(18)
    
    print(id(age))
    print(type(age))
    print(age)
    4530100848
    <class 'int'>
    18
    

    如何用?

    使用方法:加减乘除、逻辑判断(大于、小于)

    age = 18 
    print(age)  #18
    age=age+1
    print(age)  #19
    print(age>20)  #False
    

    浮点型

    作用

    表示身高、体重、薪资

    定义

    salary = 2.1  # salary=float(2.1)
    
    print(id(salary))
    print(type(salary))
    print(salary)
    4569240656
    <class 'float'>
    2.1
    

    如何用

    加减乘除、逻辑判断(大于、小于)

    salary = 2.1 
    print(salary)  #2.1
    salary=salary+1
    print(salary)  #3.1
    print(salary>20)  #False
    

    03 字符串

    作用

    表示名字、爱好

    定义

    字符串相当于一根羊肉串。而字符串就是一串被串起来的字符,在单引号、双引号或三引号内包裹的一串字符。需要注意的是:三引号内的字符可以换行,而单双引号内的字符不行。

    name = 'Thousand_Mesh'
    print(id(name))
    print(type(name))
    print(name)
    4418849624
    <class 'str'>
    Thousand_Mesh
    name = """Thousand_Mesh
    ZHL"""
    
    print(name)
    Thousand_Mesh
    ZHL
    

    如何用

    符串只能+、*和逻辑比较

    字符串的拼接,即重新申请一个小空间把两个字符串都拷贝一份后再拼接。而不是你YY的把一个小空间内的变量值复制到另一个变量的小空间内,然后拼接。

    msg2 = "my name is 'Thousand_Mesh'"
    msg3 = 'my name is "Thousand_Mesh"'
    
    print(msg2 + msg3)  # my name is 'Thousand_Mesh'my name is "Thousand_Mesh"
    my name is 'Thousand_Mesh'my name is "Thousand_Mesh"
    

    注意:如果字符串内有引号,则包裹字符串的引号和字符串内部的引号不能相同。

    name = 'Thousand_Mesh '
    print(name * 10)
    Thousand_Mesh Thousand_Mesh Thousand_Mesh Thousand_Mesh Thousand_Mesh Thousand_Mesh Thousand_Mesh Thousand_Mesh Thousand_Mesh Thousand_Mesh
    

    注意:字符串的乘法只能乘以数字。

    msg1 = 'hello'
    msg2 = 'z'
    
    print(msg1 > msg2)
    False
    

    注意:字符串比较大小,按照ASCII码比较。

    msg3 = 'zero'
    msg4 = 'zx'
    
    print(msg3 > msg4)
    print('Z' > 'A')
    print('Z' > 'a')
    False
    True
    False
    

    注意:字符串的比较是字母的顺序。

    04 列表类型

    列表类型(容器类型),放多个数据类型(任意数据类型)

    作用

    存放多个值,如多个女朋友、多个爱好。

    定义

    在[]内用逗号分隔开任意类型的值。

    hobby = 'read'
    hobby_list = [hobby, 'run', 'girl']
    print(id(hobby_list))
    print(type(hobby_list))
    print(hobby_list)
    4558605960
    <class 'list'>
    ['read', 'run', 'girl']
    

    如何用

    存不是目的,取才是目的,我们介绍列表索引取值的方法,牢记索引序号从0开始。

    hobby_list = ['read', 'run', 'girl']
    # 索引序号      0       1      2
    # 取出第二个爱好
    print(hobby_list[1])
    run
    hobby_list = ['read', 'run', ['girl_name', 18, 'shanghai']]
    # 取出girl的年龄
    print(hobby_list[2][1])
    18
    

    05 字典类型

    作用

    用来存取多个值,按照key:value的方式存值,取的时候可以通过key而非索引去取值,key对value具有描述性的作用。存放数据的种类各种各样并且数据较多的时候可以使用字典

    定义

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

    user_info = {'Thousand_Mesh': 'nick', 'gender': 'male', 'age': 19,
                 'company_info': ['shanghai', 50]}
    
    print(id(user_info))
    print(type(user_info))
    print(user_info)
    4396183344
    <class 'dict'>
    {'name': 'Thousand_Mesh', 'gender': 'male', 'age': 19, 'company_info': [ 'shanghai', 50]}
    

    如何用

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

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

    06 布尔类型

    作用

    用于判断条件结果

    定义

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

    07 解压缩

    如果我们给出一个列表,我们需要一次性取出多个值,我们是不是可以用下面的方式实现呢?

    name_list = ['Thousand_Mesh', 'ZHL', 'bjl']
    x = name_list[0]
    y = name_list[1]
    z = name_list[2]
    print(f'x:{x}, y:{y}, z:{z}')
    x:Thousand_Mesh, y:ZHL, z:bjl
    

    讲真,上面的方法真的是谁用谁知道,我们可以试一试解压缩。

    解压缩可以这样理解:超市打包是把多个商品放在一起,解压缩其实就是解包把多个商品一次性拿出来。

    name_list = ['Thousand_Mesh', 'ZHL', 'bjl', ]
    x, y, z = name_list
    print(f'x:{x}, y:{y}, z:{z}')
    x:Thousand_Mesh, y:ZHL, z:bjl
    

    有时候我们解压缩的值可能是我们不想要的,那么可以使用下划线,万能的下划线。 _(下划线)表示不需要,约定俗称的

    name_list = ['Thousand_Mesh', 'ZHL', 'bjl', 'xwj']
    x, y, z, a = name_list
    x, _, z, _ = name_list  # _相当于告诉计算机不要了,不能以_开头和结尾
    

    还能有一个更骚的操作,只可意会不可言传。

    name_list = ['Thousand_Mesh', 'ZHL', 'bjl', 'xwj', 'ls', 'zzs']
    x, y, _, _, _, z = name_list
    x, y, *_, z = name_list
    

    *_会把前面所有的省略掉,都不要,解压缩的对象有多少个元素,则必须拿多少个

    写程序不是用来装逼的,关键是创造价值。python追求的是简洁性,代码不要写的太长了。因此字典也是可以的,但是字典解压缩的是key。

    info = {'name': 'Thousand_Mesh', 'age': 18}
    x, y = info
    print(x, y)
    name age
    

    08 与用户交互

    为什么要交互

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

    如何交互

    print('-'*100)
    
    input("请输入你的姓名:")
    
    print('*'*100)
    ----------------------------------------------------------------------------------------------------
    请输入你的姓名:Thousand_Mesh
    ****************************************************************************************************
    

    现在让我们手写一个登陆系统???

    name = input('请输入你的姓名:')
    pwd = input('请输入你的密码:')
    
    print(type(name))
    print(type(pwd))
    请输入你的姓名:Thousand_Mesh
    请输入你的密码:123
    <class 'str'>
    <class 'str'>
    

    通过上面的打印结果,我们可以发现input()方法的作用只是接收值。由于我们目前基础知识不够,我们暂时使用input()交互,之后会使用Web/可视化界面的形式交互。

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

  • 相关阅读:
    docker+headless+robotframework+jenkins实现web自动化持续集成
    dokcer入门
    dockerfile详解
    全网最全Docker命令详解
    ql的python学习之路-day14
    ql的python学习之路-day13
    ql的python学习之路-day12
    关于python中第三方库安装方法和问题解决
    微信小程序之组件常见的问题
    微信小程序常用代码(1)——tab切换
  • 原文地址:https://www.cnblogs.com/TMesh/p/11272420.html
Copyright © 2011-2022 走看看