pythen语法基础之 -数据类型)

一.Pythen基础:

Pythen是一种计算机编程语言:它是我们写出的,为了能够使计算机能够理解并执行的代码程序。和我们日常使用的自然语言不同,在不同的语境下有不同的理解,计算机要根据编程语言执行任务,就必须保证编程语言在任何时候的理解都是唯一的,否则不知所措。写出的程序决不能有歧义,执行结果唯一。任何一种编程语言都有自己的一套语法,编译器或者解释器就是负责把符合语法的程序代码转换成CPU能够执行的机器码,然后执行。

1.语法:

Python的语法比较简单,采用缩进方式,写出来的代码就像下面的样子:

# print absolute value of an integer:
a = 100
if a >= 0:
    print(a)
else:
    print(-a)

#开头的语句是注释,注释是给人看的,可以是任意内容,解释器会忽略掉注释。

其他每一行都是一个语句,当语句以冒号:结尾时,缩进的语句视为代码块。

 

缩进有利有弊。好处是强迫你写出格式化的代码,但没有规定缩进是几个空格还是Tab。按照约定俗成的管理,应该始终坚持使用4个空格的缩进。

缩进的另一个好处是强迫你写出缩进较少的代码,你会倾向于把一段很长的代码拆分成若干函数,从而得到缩进较少的代码。

缩进的坏处就是“复制-粘贴”功能失效了,当你重构代码时,粘贴过去的代码必须重新检查缩进是否正确。此外,IDE很难像格式化Java代码那样格式化Python代码。

最后,请务必注意,Python程序是大小写敏感的,如果写错了大小写,程序会报错。

扫描二维码关注公众号,回复: 365424 查看本文章

 

2.数据类型:

在编程语言中,特别是面向对象语言,任何东西都是抽象为某一种类型,Pythen作为面向对象语言中的一种,同样内置了基本的数据类型,使得计算机达到“计算的功能”,这里的计算不能是基础的数值运算,同样能够处理我们自定义的业务逻辑(业务逻辑就是我们按照一定的流程和数值计算得到最终结果),为了能够表示这些不同于数值的计算类型,比如处理文本,图片,音频、视频的网页文件等各种数据,我们自定义了对应的数据结构以渴望尽可能形象的描述这些数据,这些定义的数据结构我们就称之为数据类型。

任何面向对象的语言都有自己的基本的数据类型,同时我们自己开发时候自定义类型。Pythen内置数据类型:

1) 整数

与我们数学运算相同,有正数 0 负数,同时也可以用不同进制(16进制Ox前缀0-9a-f)

2) 浮点数

在数学中也称之为小数。使用科学记数法时候0.0012 = 1.2e-3

整数与浮点数在计算机的存储是不同的结构,整数运算永远都是唯一(精确的),浮点数则可能有四舍五入

除法:

Pythen中有两种除法运算:一种是/, 另外一种是//

a = 10 / 3

结果是3.3333333333333335

/除法计算结果是浮点数,即使两个整数恰好整除,结果也是浮点数: 9 / 3 结果是3.0

//除法,也称之为地板除,两个整数的除法结果仍然是整数结果是取结果的整数部分(向下取整)9 // 3 结果3

取余运算:10 % 3 结果是1

无论整数做//除法还是取余数,结果永远是整数,所以,整数运算结果永远是精确的

 

3) 字符串

字符串是以单引号''或者双引号“”括起来的任意文本,比如'a' 和 “a”都是表示字符串a,同时如果字符串中含有’ 或者",则需要括在里:字符串 I'm a boy. 写法为:"I'm a boy.",如果同时包含了' 和 “"那么必须使用转移字符\ 表示:字符串I'm a boy named "cw". 写法为:‘I\'m a boy named \"cw\"’。

 

转义字符:

a.转义字符\:它是解释器在解析代码时候,主动告诉它这个字符不是按照默认的规则来匹配语法,而是将\后面的字符按照特殊意义输出。如果没有\,这个字符串就会解释成:最开始的左边‘ 与其后的第一个’ 匹配,接下来的字符串必然会报语法错误。

b.转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\

c.为了简化语法,pythen提供了r‘’ 表示在''内部的所有字符都不转义,全部原样输出。r‘I'm a boy named "cw"’

d.如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用'''...'''的格式表示多行内容:

print('''line1

line2

line3''') 结果就是分别换行。

 

4) 布尔值:

与布尔代数完全相同,一个布尔值只有两种类型:True/False二者之一。(注意大小写,Pythen大小写敏感)

布尔值可以使用and or not运算。

and 与运算、并且运算,运算方都是True才是True,否则False

or 或运算、或者运算,运算方只要有一个为True就是为True否则False

not 非运算,它是一个单目运算符。取反,not True就是False

 

5) 空值

空值是Pythen中的一个特殊的值。使用none关键字表示,表示没有。

 

还有其他的比如列表类型,字典类型等,用户自定义类型。

 

3.变量

变量的基本概念就是我们初高中时代运算方程变量类似,指代某一个特殊的东西(对象/实例)在此扩展延伸可以表示任意类型。变量在程序在程序中就是一个变量名,变量名必须是字母数字下划线的组合,并且不能数字开头。

a = 3 a就是一个变量,表示整数类型3

在Pythen中,=是一个赋值语句,可以把任意类型数据赋值给变量,同一个变量可以反复赋值并且可以是不同的类型的变量:

a = 3 #a是整数3

a = True #a是布尔类型True

这种变量本身类型不固定的语言成为动态语言,与之对应的则是静态语言:静态语言在帝国内衣变量的时候必须声明变量类型,如果赋值的时候类型不匹配,就会报错。

 

=赋值语句与数学运算的=完全不同,

x = 2

x = x + 2

这个从数学上理解是完全错误的,但是在程序中,赋值语句先计算右侧表达式的值12,在赋值给变量x。x从最初的10变为12

在计算机中,变量和对象在计算机中内存中的存储如下:

a = 'a'

Pythen解释器做了以下工作:

1.在内存中创建一个‘a’的字符串对象

2.内存中创建一个名为a的变量,并把它指向‘a’对象的内存地址。

 

例子:

a= 'A'

b = a

a = 'B'

print(b)

这个代码的结果是什么呢?

我们来分析:

1.首先创建一个字符串对象‘A’,

2.创建变量a,并指向字符串对象‘A’

3.创建变量b,同时也指向字符串对象‘A’

4.创建字符串对象‘B’

5.将变量a的指向改为字符串'B'

这个时候我们发现,不管a怎么改,b变量永远都是指向字符串对象'B',所以结果显然是B

 

4.常量

所谓常量,就是一旦创建,就不能改变的变量。比如圆周率π就是一个常量,数学底数e也是常量等。在Pythen中约定:常量全部使用大写变量名

PI = 3.1415926

实际上,在Pythen因为是动态语言,没有任何机制来保证PI是不能被改变的,它不能象静态语言java那样使用final关键字强制保证,但是这时Pythen的约定和习惯,在计算机中约定大于配置原理,这时不可动摇的。这时候你一定要强制去修改,只能呵呵。

 

猜你喜欢

转载自flycw.iteye.com/blog/2381709