我的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岁'
原文地址:https://www.cnblogs.com/1210x1184/p/10970750.html