• 2.基本数据类型与运算符


    1 用户与程序交互

    复制代码
    #在python3中
    input:用户输入任何值,都存成字符串类型
    
    #在python2中
    input:用户输入什么类型,就存成什么类型
    raw_input:等于python3的input
    复制代码

        注释

        代码注释分单行和多行注释, 单行注释用#,多行注释可以用三对双引号""" """

        代码注释的原则:

    #1. 不用全部加注释,只需要在自己觉得重要或不好理解的部分加注释即可
    #2. 注释可以用中文或英文,但不要用拼音

        文件头

    #!/usr/bin/env python
    # -*- coding: utf-8 -*- 

    2 基本数据类型

        什么是数据?为何要有多种类型的数据?

    #数据即变量的值,如age=18,18则是我们保存的数据。
    #变量的是用来反映/保持状态以及状态变化的,毫无疑问针对不同的状态就应该用不同类型的数据去标识

        数字

    复制代码
    复制代码
    #int整型
    定义:age=10 #age=int(10)
    用于标识:年龄,等级,身份证号,qq号,个数
    
    #float浮点型
    定义:salary=3.1 #salary=float(3.1)
    用于标识:工资,身高,体重,
    复制代码
    复制代码
    #int(整型)
    在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
    在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
    #long(长整型)
    跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
    注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。
    注意:在Python3里不再有long类型了,全都是int
    >>> a= 2**64
    >>> type(a)  #type()是查看数据类型的方法
    <type 'long'>
    >>> b = 2**60
    >>> type(b)
    <type 'int'>
    
    #complex复数型
    >>> x=1-2j
    >>> x.imag
    -2.0
    >>> x.real
    1.0
    其他数据类型(了解部分)

        字符串

    #在python中,加了引号的字符就是字符串类型,python并没有字符类型。
    定义:name='egon' #name=str('egon') 
    用于标识:描述性的内容,如姓名,性别,国籍,种族
    #那单引号、双引号、多引号有什么区别呢? 让我大声告诉你,单双引号木有任何区别,只有下面这种情况 你需要考虑单双的配合
    msg = "My name is Egon , I'm 18 years old!"
    
    #多引号什么作用呢?作用就是多行字符串必须用多引号
    msg = '''
    今天我想写首小诗,
    歌颂我的同桌,
    你看他那乌黑的短发,
    好像一只炸毛鸡。
    '''
    print(msg)
    单引号,双引号,三引号的区别
    #数字可以进行加减乘除等运算,字符串呢?让我大声告诉你,也能?what ?是的,但只能进行"相加"和"相乘"运算。
    >>> name='egon'
    >>> age='18'
    >>> name+age #相加其实就是简单拼接
    'egon18'
    >>> name*5 
    'egonegonegonegonegon'
    
    
    #注意1:字符串相加的效率不高
    字符串1+字符串3,并不会在字符串1的基础上加字符串2,而是申请一个全新的内存空间存入字符串1和字符串3,相当字符串1与字符串3的空间被复制了一次,
    
    #注意2:只能字符串加字符串,不能字符串加其他类型
    字符串拼接(只能在字符串之间进行,且只能相加或相乘)

        列表

    #在[]内用逗号分隔,可以存放n个任意类型的值
    定义:students=['egon','alex','wupeiqi',] #students=list(['egon','alex','wupeiqi',]) 
    用于标识:存储多个值的情况,比如一个人有多个爱好
    #存放多个学生的信息:姓名,年龄,爱好
    >>> students_info=[['egon',18,['play',]],['alex',18,['play','sleep']]]
    >>> students_info[0][2][0] #取出第一个学生的第一个爱好
    'play'
    列表嵌套、取值

        字典

    复制代码
    复制代码
    #为何还要用字典?
    存放一个人的信息:姓名,性别,年龄,很明显是多个值,既然是存多个值,我们完全可以基于刚刚学习的列表去存放,如下
    >>> info=['egon','male',18]
    定义列表的目的不单单是为了存,还要考虑取值,如果我想取出这个人的年龄,可以用
    >>> info[2]
    18
    但这是基于我们已经知道在第3个位置存放的是年龄的前提下,我们才知道索引2对应的是年龄
    即:
            #name, sex, age
    info=['egon','male',18]
    而这完全只是一种假设,并没有真正意义上规定第三个位置存放的是年龄,于是我们需要寻求一种,即可以存放多个任意类型的值,又可以硬性规定值的映射关系的类型,比如key=value,这就用到了字典
    复制代码
    复制代码
    #在{}内用逗号分隔,可以存放多个key:value的值,value可以是任意类型
    定义:info={'name':'egon','age':18,'sex':18} #info=dict({'name':'egon','age':18,'sex':18})
    用于标识:存储多个值的情况,每个值都有唯一一个对应的key,可以更为方便高效地取值
    info={
        'name':'egon',
        'hobbies':['play','sleep'],
        'company_info':{
            'name':'Oldboy',
            'type':'education',
            'emp_num':40,
        }
    }
    print(info['company_info']['name']) #取公司名
    
    
    students=[
        {'name':'alex','age':38,'hobbies':['play','sleep']},
        {'name':'egon','age':18,'hobbies':['read','sleep']},
        {'name':'wupeiqi','age':58,'hobbies':['music','read','sleep']},
    ]
    print(students[1]['hobbies'][1]) #取第二个学生的第二个爱好
    字典相关的嵌套、取值

        布尔

    复制代码
    复制代码
    #布尔值,一个True一个False
    >>> b=5
    >>> 
    >>> a > b #不成立就是False,即假
    False
    >>> 
    >>> a < b #成立就是True, 即真
    True

        布尔类型的重点知识!!!:

    #所有数据类型都自带布尔值
    1、None,0,空(空字符串,空列表,空字典等)三种情况下布尔值为False
    2、其余均为真 

        重点

    #1.可变类型:在id不变的情况下,value可以变,则称为可变类型,如列表,字典
    
    #2. 不可变类型:value一旦改变,id也改变,则称为不可变类型(id变,意味着创建了新的内存空间) 

    3 格式化输出

         占位符:%s和%d。格式化输出的还有format。

    复制代码
    复制代码
    #%s字符串占位符:可以接收字符串,也可接收数字
    print('My name is %s,my age is %s' %('egon',18))
    #%d数字占位符:只能接收数字
    print('My name is %s,my age is %d' %('egon',18))
    print('My name is %s,my age is %d' %('egon','18')) #报错
    
    #接收用户输入,打印成指定格式
    name=input('your name: ')
    age=input('your age: ') #用户输入18,会存成字符串18,无法传给%d
    
    print('My name is %s,my age is %s' %(name,age))
    
    #注意:
    #print('My name is %s,my age is %d' %(name,age)) #age为字符串类型,无法传给%d,所以会报错
    复制代码
    复制代码
    练习:用户输入姓名、年龄、工作、爱好 ,然后打印成以下格式
    ------------ info of Egon -----------
    Name  : Egon
    Age   : 22
    Sex   : male
    Job   : Teacher 
    ------------- end -----------------
    小练习 
     

    4 基本运算符

        计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算,今天我们暂只学习算数运算、比较运算、逻辑运算、赋值运算

        算数运算

        以下假设变量:a=10,b=20

        比较运算

        以下假设变量:a=10,b=20

     

        赋值运算

        以下假设变量:a=10,b=20

        逻辑运算

    复制代码
    #三者的优先级从高到低分别是:not,or,and
    >>> 3>4 and 4>3 or 1==3 and 'x' == 'x' or 3 >3
    False
    #最好使用括号来区别优先级,其实意义与上面的一样
    >>> (3>4 and 4>3) or ((1==3 and 'x' == 'x') or 3 >3)
    False 
    复制代码

        身份运算

    #is比较的是id
    #而==比较的是值

    5.运算符优先级:自上而下,优先级从高到低

     

     

     

  • 相关阅读:
    洛谷 P1325 雷达安装 解题报告
    洛谷 P2184 贪婪大陆 解题报告
    洛谷 P3942 将军令 解题报告
    洛谷 P3698 [CQOI2017]小Q的棋盘 解题报告
    洛谷 P1436 棋盘分割 解题报告
    C++生成dump文件,调试dump文件
    判断机器大小端的两种实现方法
    判断机器大小端的两种实现方法
    Visual Studio 代码生成 运行时库的选择
    Visual Studio 代码生成 运行时库的选择
  • 原文地址:https://www.cnblogs.com/cmd61/p/11116053.html
Copyright © 2020-2023  润新知