Python教程:代码结构、基本类型与保留字、运算符

Python教程:代码结构、基本类型与保留字、运算符


发布日期: 1970-01-01 更新日期: 2015-01-29 编辑:bukun 浏览次数: 4512

标签:

摘要: Python的代码结构与缩进 程序编码 py文件默认是ASCII编码,中文在显示时会做一个ASCII到系统默认编码的转换,这时就会出错:SyntaxError: Non-ASCII character。需要在代码文件的第一行或第二行添加编码指示: # -*- ...

Python的代码结构与缩进

程序编码

py文件默认是ASCII编码,中文在显示时会做一个ASCII到系统默认编码的转换,这时就会出错:SyntaxError: Non-ASCII character。需要在代码文件的第一行或第二行添加编码指示:

# -*- coding:utf-8 -*-

编码可以是utf-8,gbk,cp936,gb2312。这个根据保存的类型进行选择吧。Windows下使用IDLE,若代码中使用了非ASCII代码,则在保存 的时候会提示,一般是cp936;新版本的Eclipse一般都默认是UTF-8吧。其他的自己判断一下吧。建议都使用utf-8。那么在编辑器或IDE可能需要配置一下,以方便使用。

行结构/缩进

程序中的每个语句都以换行符结束。特别长的语句可以使用续行符()来分成几个短小的行,如下例:

# demo_00_01.py
import math
a = math.cos(3*(x-n)) + 
    math.sin(3*(y-n))

当你定义一个三引号字符串、列表、tuple 或者字典的时候不需要续行符来分割语句。及就是说,在程序中,凡是圆括号(,,,)、方括号[,,,]、花括号{,,,}及三引号字符串内的部分均不需要使用续行符。

缩进

被用来指示不同的代码块,比如函数的主体代码块,条件执行代码块,循环体代码块及类定义代码块。缩进的空格(制表符)数目可以是任意的,但是在整个块中的缩进必须一致 。 这里强烈要求使用4个空格来进行缩进,原因不解释。

# demo_00_02.py
val_a = 13
val_b = 50
if a > b:
    print('A is greater than B.')
else:
    print('B is greater than A.')

Python内建数据类型

Python 有多种内置数据类型。以下是比较重要的一些:

  • Booleans[布尔型] 或为 True[真] 或为 False[假]。
  • Numbers[数值型] 可以是 Integers[整数](1 和 2)、Floats[浮点数](1.1 和 1.2)、Fractions[分数](1/2 和 2/3);甚至是 Complex
  • Number[复数]。
  • Strings[字符串型] 是 Unicode 字符序列,例如: 一份 HTML 文档。
  • Bytes[字节] 和 Byte Arrays[字节数组], 例如: 一份 JPEG 图像文件。
  • Lists[列表] 是值的有序序列。
  • Tuples[元组] 是有序而不可变的值序列。
  • Sets[集合] 是装满无序值的包裹。
  • Dictionaries[字典] 是键值对的无序包裹。 当然,还有更多的类型。在 Python 中一切均为对象,因此存在像 module[模块]、 function[函数]、 class[类]、 method[方法]、 file[文件] 甚至 compiled code[已编译代码] 这样的类型。

True False

布尔类型或为真或为假。Python 有两个被巧妙地命名为 True 和 False 的常量,可用于对布尔类型的直接赋值。表达式也可以计算为布尔类型的值。在某些地方(如 if 语句),Python 所预期的就是一个可计算出布尔类型值的表达式。这些地方称为 布尔类型上下文环境。事实上,可在布尔类型上下文环境中使用任何表达式,而 Python 将试图判断其真值。在布尔类型上下文环境中,不同的数据类型对于何值为真、何值为假有着不同的规则。

print ( 4 > 30 )
print(True | False)

数值类型

Python中有四种内建的数值类型:整数、长整数、浮点数和复数。

# -*- coding:utf-8 -*-
import math
int_a = 3
int_b = 4
int_c =  5
# 长整型在后面加L,或者l
long_a = 3L
print(type(int_a))
print(type(long_a))
# 注意不同类型变量参加计算的精度
print( int_b / int_a)
print( int_b * 1.0 / int_a)
# 内建的除法函数,返回商与余数
print(divmod ( int_b, int_a))
print(divmod ( int_b * 1.0, int_a))
# 复数类型
com_i = int_a + int_b * 1j
# 求向量长度
print(abs(com_i))
print( math.sqrt(int_a**2 +  int_b**2))

尽管Python的内建数据类型很强大,但是作为计算机语言,不能等同于数据公式来使用的。譬如,我想表示一下欧位恒等式 print(math.pow(math.e, math.pi * (0 + 1j)) + 1) 这个是不行的。

字符串

Python目前支持两种类型的字符串:8位字符数据 (ASCII)、16位宽字符数据 (Unicode)。 最常用的是ASCII字符串,因为这个字符集刚好只 用一个字节就可以字符集中的任意一个字符。通常情况下,ASCII串用单引号('),双引号("),或者三引号(''' 或 """)来定义。字符串前后的引号类型必须一致。反斜杠()用来转义特殊字符,比如换行符、反斜杠本身、引号以及其他非打印字符。Table 2.1中列出了公认的特 殊字符的表示方法,无法识别的转义字符串将被原样保留(包括前边的反斜杠)。此外,字符串可以包含嵌入的空字节和二进制数据。三引号字符串中可以包含不必转义的换行符 和引号。

print('abcd')
print("abcd")
print('''abcd''')
print('ab"cd')
print("ab'cd")
print('''a'b"c'd''')
print('abcd
efgh')
print('abcdn
efgh')
print('abcdnefgh')
print('''abcd
fdsf''')

目前只考虑ASCII字符串。另外要注意字符的转义,这在每种语言中都会碰到。

标识符及保留字、运算符、分隔符及特殊符号

有了前面的介绍,这几部分自己找资料看吧。

关注公众号
获取免费资源

随机推荐


Copyright © Since 2014. 开源地理空间基金会中文分会 吉ICP备05002032号

Powered by TorCMS

OSGeo 中国中心 邮件列表

问题讨论 : 要订阅或者退订列表,请点击 订阅

发言 : 请写信给: osgeo-china@lists.osgeo.org