zoukankan      html  css  js  c++  java
  • 我的Python入门笔记(3)

    一章:Python基础语法(下)


    Explicit is better than implicit. ——The Zen of Python


    一、变量

    1.1 理解Python中的变量

      在Python中,变量严格意义上应该被称为“名字”,也可以理解为标签。当把一个值赋值给一个名字时(如把“这是Python”赋值给Python),Python就称为变量。

    1.2 变量的定义和使用

      在Python中,不需要先声明变名及其类型,直接赋值即可创建各种类型的变量,但是变量的命名不是任意的,应该遵守以下几条规则:

      >> 变量名必须是一个有效的的标识符

      >> 变量名不能使用Python的关键字

      >> 慎用小写字母l和大写字母O(容易混淆)

      >> 应该选择有意义的单词作为变量名。

      为变量赋值可以通过等号(=)来实现,其语法格式为:

    变量名 = Value;

      例如,创建一个整型变量,并为其赋值为220,可以使用如下的语句:

    number = 220  #创建变量并为其赋值为220

      此外,Python是一种动态类型语言,即就是,变量的类型可以随时变化,例如在Python自带的IDLE中,创建变量myname,并为其赋值为“雨霓同学”,然后输出变量的类型,可以看到该变量为字符串类型,再将变量赋值为1210,并输出改变量的类型,可以看到该变量的类型为整型。示例如下:

     myname = "雨霓同学"
    >>> print(type(myname))
    <class 'str'>
    >>> myname = 1210
    >>> print(type(myname))
    <class 'int'>

      在Python语言中,使用内置函数type( )可以返回变量的类型。

      在Python中,允许多个变量指向同一个值。例如:将两个变量都赋值为1210,再分别应用内置函数id()获取变量的内存地址,得到相同的结果,示例如下:

    >>> no = number = 1210
    >>> id(no)
    2284247074704
    >>> id(number)
    2284247074704

       在Python语言中,使用内置函数id( )可以返回变量所指的内存地址。

      常量:常量就是程序运行过程中,值不能改变的量,比如你的身份证号码,数学运算中的圆周率,这些都是不会改变的,在Python中,并未提供定义常量的保留字,在PEP8规范中规定了常量有大写字母和下划线组成,但是在实际项目中,常量被赋值后,依旧可以被其他代码修改。

    二、变量的数据类型

      在Python中,内存存储的数据可以有很多种类型。如一个人的姓名可以用字符型存储,年龄可以用数值型存储,是否结婚可以用布尔类型存储,这些都是Python中数据类型。Python3中包含6个标准的数据类型:Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Sets(集合)、Dictionary(字典).

    2.1 数字类型(Number):

      整型:整数用来表示整数数值,即没有小数部分的数值。整数类型包含十进制数二进制数八进制数十六进制数.

        十进制数:十进制整数的表现形式都很熟悉,如我们日常生活用的数字。十进制数不能以0作为开头,(0除外).

        二进制数:只有0和1两个基数,进位规则是“逢二进一”,如101(转化为十进制数就是5)

        八进制数:由0~7组成,进位规则是“逢八进一”,并且以0o开头的数字,如0o123(转化为十进制数为83),Py3中,八进制数必须以0o/0O开头.

        十六进制数:由0~9,A~F组成,进位规则为“逢十六进一”,并且以0x/0X开头的数,如0x25(转换为十进制数为37),十六进制数必须以0X或0x开头.

      浮点型:浮点数有整数部分和小数部分组成,主要用于出来包含小数的数。

      复数:Python中的复数与数学中的复数形式完全一致,都是有实部和虚部组成,并使用j或者J表示虚部。

      布尔类型:布尔类型主要用来表示真或假的值。在Python中,标识符(关键字)True 和 False被解释为布尔值,另外在Python中的布尔值可以转化为数值,其中True表示1False表示0.

        Python中的布尔类型的值可以进行数值运算,但是不建议对布尔类型的数值进行数值运算,此外在Python中,所有的对象都可以进行真值测试.其中只有 下面几种情况得到的值为假,其他对象在if或while语句中都表现为真。

        >> False 或None

        >> 数值中的零,包括0 、0.0 、虚数0。

        >> 空序列,包含字符串,空元组,空列表,空字典。

        >> 自定义对象的实例,该对象的__bool__返回False,或者__len__方法返回0。

    2.2 字符串类型(String)

      字符串就是连续的字符,在Python中字符串属于不可变序列,通常使用单引号“ ‘ ’  ”,双引号“ “ ” ”,或折三引号“ '''  ''' ”或“ """  """ ”表示,三种引号在语义上并无太大差别,只是在形式上有些差别,单引号和双引号的字符必须在一行上,而三引号内的字符序列可以分布在连续的多行上.

    2.3 列表(List)、元组(Tuple)、集合(Sets)、字典(Dictionary)

      列表和元组可以当做普通的“数组”,它们可以保存任意数量的的任意类型的值,而这些值简称为元素。列表中的元素使用中括号 [ ]包含,元素的个数和值是可以任意修改的,而元组中的元素使用小括号( )包含,元素不可被修改。示例如下:

    list_name = [1,2,'你好 雨霓同学'] #这是一个列表
    tuple_name = (1,2,'你好 雨霓同学') #这是一个元组
    a,b= type(list_name),type(tuple_name) # 查看类型
    print(a,b)
    
    <class 'list'> <class 'tuple'>

      集合:集合(set)是0个或多个对象引用的无序组合,在集合中任何元素都没有重复,示例如下:

    >>> nullset=set() #没有参数,set会创建一个空集
    >>> nullset
    set()
    >>> a_set=set('abcdef') #提供一个str作为输入集合会创建一个set
    >>> a_set
    {'e', 'a', 'c', 'd', 'b', 'f'}

      字典:字典是Python中的映射数据类型,由键-值对组成。字典可以存储不同类型的元素,元素使用花括号来包含。示例如下:  

    > dice_name = {'name':'雨霓同学','age':22} #这是一个字典
    >>> type(dice_name)
    <class 'dict'>

    2.4 常用数据类型转换

      Python是动态类型的语言(也称弱类型语言,虽然不需要声明变量的类型,但有时仍需要用到类型转换)在Python中,提供了如下所示的函数,可以进行各个数据类型之间的转换

      float(x):    将x转换为浮点数类型
      complex(real,[,imag]): 创建一个复数
      str(x):      将x转换为字符串

    In [1]: x = 3.1415926 #输入一个浮点数x
    In [2]: x1 = int(x)    # 将x转化为整型数  int(x):将x转换成整数类型
    
    In [3]: type(x1)  #查看x1的数值类型
    Out[3]: int
    
    In [4]: x2 = float(x1)  将x1转化为浮点数
    
    In [5]: type(x2)  #查看x2的数值类型
    Out[5]: float
    
    In [6]: x3=complex(220,284)  #生成一个复数
    
    In [7]: x3
    Out[7]: (220+284j)
    
    In [8]: x4=str(x)  #将x转化为字符串类型
    
    In [9]: type(x4)
    Out[9]:str

      repr( )函数 将对象转化为供解释器读取的形式,即转化为表达式字符串.

        语法:repr(object)

        参数:object--对象

        返回值:返回一个对象的string格式.

    >>> name = "雨霓同学"
    >>> repr(name)
    "'雨霓同学'"
    >>> dict = {'name':'雨霓同学','age':'22'}
    >>> repr(dict)
    "{'name': '雨霓同学', 'age': '22'}"

      eval()函数 用来执行一个字符串表达式,并返回表达式的值。

        语法:eval ( expression [ , globals [ , locals ] ] )

        参数:expression--表达式.

             globals--变量的作用域,全局命名空间,如果被提供,则必须是一个字典对象.

             locals--变量的作用域,局部命名空间,如果被提供,可以是任何映射对象.

        返回值:返回表达式的计算结果.

    >>> x = 220
    >>> eval('3*x')  #计算字符串中Python表达式,并返回计算结果
    660
    
    >>> a = '284'  #eval 方法能使字符串本身的引号去掉,保留字符的原本属性
    >>> type(a)
    <class 'str'>
    >>> b=eval(a)
    >>> type(b)
    <class 'int'>

      chr(x):      用一个整数作为参数,返回当前整数对应的ASCII码,其中x可以是十进制数也可以是十六进制数.数字范围为0-1,114,111.

    >>> a,b,c=chr(97),chr(8364),chr(0x30)
    >>> a,b,c
    ('a', '', '0')

      ord(x):        将一个字符x转化为它对应的整数值,它是函数chr()匹配函数,以一个字符串作为参数,返回对应的ASCII数值,返回值是对应的十进制整数。

    >>> a,b=ord('a'),ord('')
    >>> a,b
    (97, 8364)

      int(x):   用于将一个字符串或数字转化为整型,

           语法格式:int(x,base=10) 

             参数:x--字符串或者数字,base--进制数,默认十进制。(第一个是要进行转化的数字,第二个用来说明前面一个数字是什么进制)

    #分别把16进制的12转化为10进制,16进制的'0xa'转化为10进制,八进制的10转化为10进制,2进制的10转化为10进制
    >>> a,b,c,d = int('12',16),int('0xa',16),int('10',8),int('10',2)
    >>> a,b,c,d
    (18, 10, 8, 2)

      bin(x):        将一个整数x转化为一个二进制的字符串

      oct(x):        将一个整数x转化为一个八进制的字符串

      hex(x):       将一个整数x转化为一个十六制的字符串

    #分别将10进制的220转化为2进制,284转化为8进制,1210转化为16进制
    >>> a,b,c=bin(220),oct(284),hex(1210)
    >>> a,b,c
    ('0b11011100', '0o434', '0x4ba')

       注意:在进行数据类型转换时,如果把一个非数字字符串转化为整型,则会报错,具体信息如下:

    >>> int('22岁')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: invalid literal for int() with base 10: '22岁'
  • 相关阅读:
    uva 11294 Wedding
    uvalive 4452 The Ministers’ Major Mess
    uvalive 3211 Now Or Later
    uvalive 3713 Astronauts
    uvalive 4288 Cat Vs. Dog
    uvalive 3276 The Great Wall Game
    uva 1411 Ants
    uva 11383 Golden Tiger Claw
    uva 11419 SAM I AM
    uvalive 3415 Guardian Of Decency
  • 原文地址:https://www.cnblogs.com/1210x1184/p/10970750.html
Copyright © 2011-2022 走看看