python 学习笔记1——数据类型、字符串、运算符

来源:互联网 发布:淘宝卖家专用软件 编辑:程序博客网 时间:2024/05/02 00:56

最近开始学python,这是一个很强大和便捷的编程语言,日后进行科学计算和科研的时候必然成为主要的编程语言。
本来买了一本python基础教程(第2版),然而教学顺序不太喜欢,因为一开始并没有讲清楚语法,不能学了立马用到实验中。并且,这本书针对的是没有编程基础的人,讲的比较浅。
我有一点C的编程基础,根据知乎上python的推荐教程url,决定从中文的简明python教程url入手。

在这里把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.0complex(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 sab

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是否小于等于y x = 3; y = 6; x <= y返回True。 >= 大于等于 返回x是否大于等于y x = 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会首先计算表中较下面的运算符,然后在计算列在表上部的运算符

运算符 描述 lambda Lambda表达式 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,…’ 字符串转换

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

0 0
原创粉丝点击