Python 入门学习之数据类型、字符串、运算符

最近开始学Python,这是一个很强大和便捷的编程语言,日后进行科学计算和科研的时候必然成为主要的编程语言。

本来买了一本Python基础教程(第2版),然而教学顺序不太喜欢,因为一开始并没有讲清楚语法,不能学了立马用到实验中。并且,这本书针对的是没有编程基础的人,讲的比较浅。

在这里把python中特有的,以及和C不同的地方记下来。

  • 数据类型
    • 强制类型转换
  • 字符串
    • 转义字符
    • 自然字符串
    • Unicode字符串
    • 字符串是不可变的
  • 标识符变量的命名
  • 缩进
  • 运算符
  • 运算优先级

1.数据类型

在python中,有4种数据类型——整数(int)、长整数(long)、浮点数(float)和复数(complex)。

  • 2是一个整数的例子。
  • 长整数不过是大一些的整数。长整型通常在数字后面加L表示,如1000000L。
  • 3.23和52.3E-4是浮点数的例子。E标记表示10的幂。在这里,52.3E-4表示52.3 * 10-4。
  • (-5+4j)和(2.3-4.6j)是复数的例子。

    这里居然有复数,果然比C要方便计算,在C中通常需要自己定义复数类型。

强制类型转换

上面的4中数据类型可以互相转换,还可以转换为字符串类型(str)如:

>>> a=12343434
>>> long(a)
12343434L
>>> str(a)
'12343434'
>>> float(a)
12343434.0
complex(a)
(12343434+0j)

2.字符串

可以用单引号和双引号来表示中间为字符串,两者并没有什么差别。当字符串里有引号或者多行时,可以用三引号括起来(”’或者”“”)表示。

在C++中,使用单引号表示char,用双引号表示String。

转义字符

在字符中,若要表示斜杠\,需要使用\,其他特殊符号也是,例如用\’ 表示引号(若没有使用三引号)。程序中可以使用 \ 表示两行是连在一起的,例如

s = 'This is a string. \
This continues the string.'
print s

输出:

This is a string. This continues the string.

自然字符串

如果你想要指示某些不需要如转义符那样的特别处理的字符串,那么你需要指定一个自然字符串。自然字符串通过给字符串加上前缀r或R来指定。例如r”Newlines are indicated by \n”。

Unicode字符串

Unicode是书写国际文本的标准方法。如果你想要用中文或者其他非英文文本,那么你需要有一个支持Unicode的编辑器。类似地,Python允许你处理Unicode文本——你只需要在字符串前加上前缀u或U。例如,u”This is a Unicode string.”。

记住,在你处理文本文件的时候使用Unicode字符串,特别是当你知道这个文件含有用非英语的语言写的文本。

字符串是不可变的

这意味着一旦你创造了一个字符串,你就不能再改变它了。虽然这看起来像是一件坏事,但实际上它不是。若要对一个字符进行修改,其实也可以用原来的名字进行赋值,例如:

>>> s='abc'
>>> s=s[:2]
>>> print s
ab

3.标识符(变量的命名)

  • 标识符的第一个字符必须是字母表中的字母(大写或小写)或者一个下划线(‘ _ ’)。

  • 标识符名称的其他部分可以由字母(大写或小写)、下划线(‘ _ ’)或数字(0-9)组成。

  • 无效 标识符名称的例子有2things、this is spaced out和my-name。

    使用变量时只需要给它们赋一个值。不需要声明或定义数据类型。

4.缩进

空白在Python中是重要的。事实上行首的空白是重要的。它称为缩进。在逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组。

这意味着同一层次的语句必须有相同的缩进。每一组这样的语句称为一个块。

不要混用空格和tab,要是用tab就全部用tab,若用4个空格或2个空格则一直用空格。一个tab和4个空格是不一样的,即使看起来位置一样!

5.运算符

我把值得注意的,和C不一样的列出来:

运算符名称说明例子
**返回x的y次幂3 ** 4得到81(即3 * 3 * 3 * 3)
//取整除返回商的整数部分4 // 3.0得到1.0
^按位异或数的按位异或5 ^ 3得到6
~按位翻转x的按位翻转是-(x+1)~5得到6。
<=小于等于返回x是否小于等于yx = 3; y = 6; x <= y返回True。
>=大于等于返回x是否大于等于yx = 4; y = 3; x >= y返回True。
not布尔“非”如果x为True,返回False。如果x为False,它返回True。x = True; not y返回False。
and布尔“与”如果x为False,x and y返回False,否则它返回y的计算值。x = False; y = True; x and y,由于x是False,返回False。在这里,Python不会计算y,因为它知道这个表达式的值肯定是False(因为x是False)。这个现象称为短路计算。
or布尔“或”如果x是True,它返回True,否则它返回y的计算值。x = True; y = False; x or y返回True。短路计算在这里也适用。

6.运算优先级

下面这个表给出Python的运算符优先级,从最低的优先级(最松散地结合)到最高的优先级(最紧密地结合)。这意味着在一个表达式中,Python会首先计算表中较下面的运算符,然后在计算列在表上部的运算符

运算符描述
lambdaLambda表达式
or布尔“或”
and布尔“与”
not x布尔“非”
in,not in成员测试
is,is not同一性测试
<,<=,>,>=,!=,==比较
|按位或
^按位异或
&按位与
<<,>>移位
+,-加法与减法
*,/,%乘法、除法与取余
+x,-x正负号
~x按位翻转
**指数
x.attribute属性参考
x[index]下标
x[index:index]寻址段
f(arguments…)函数调用
(experession,…)绑定或元组显示
[expression,…]列表显示
{key:datum,…}字典显示
‘expression,…’字符串转换

运算符通常由左向右结合,即具有相同优先级的运算符按照从左向右的顺序计算。如果我们想要改变它们的计算顺序,得使用圆括号。

相关推荐