缩进,注释,代码块,编译与优化,编码,运算符,切片

原创 2016年08月31日 14:56:35

缩进

        python不使用{}区分代码块,而使用缩进表示。因此python的缩进影响着代码的执行,影响着代码的内在逻辑,这与java、c是完全不同的。

        1,tab键与空格不能混用。

        2,缩进相同的代码属于同一代码块,同一代码块内的语句必须缩进相同。如下面的else中的代码码缩进必须相同,但不必与if中的相同。

if True:
    print("this is ")
else:
    print("false")
# 如果将此句也缩进一个tab,则该句属于else代码块。
print("测试中文!")

注释

        python中只有单行注释,使用"#[空格]"开头。

        如果注释与代码写在一行,则注释与代码之间最少需要两个空格。如

# 单独注释行不需要在前面隔两个空格
print("测试中文!")
print(True and False)  # 注释与前面的代码隔了两个空格

代码块

        缩进相同的一组语句构成一个代码块。像if、while、def和class这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码块。

编译

        python有三种文件格式:py结尾,pyc结尾以及pyo结尾。其中py结尾的是源文件,pyc结尾的是编译后的文件,pyo结尾的是优化后的文件。三种文件都可以通过python命令行进行运行。

编译某个文件的代码如下:

#coding:utf-8
import py_compile
py_compile.compile('1.py') # 编译1.py文件

编译后生成的文件以pyc结尾。

优化是使用python命令行执行的,如下:

python -O -m py_compile 1.py

        该命令行会生成pyo文件,也可以使用python 1.pyo运行该pyo文件。

编码

        使用vim开发时,会遇到"SyntaxError: Non-ASCII character"错误,这是因为python默认使用ASCII编码,而ASCII码不支持中文,而在源文件中有中文(不管是注释中的还是代码中的)。

        解决该错误很简单,只需要在文件前面加上#coding:utf-8即可,它将文件的编码改为utf-8格式,而utf-8支持中文。要注意的是该句必须放在前两行,如果放到别的地方将不会生效。

        有时候,即使添加了#coding:utf-8,编码的时候仍旧会报SyntaxError: (unicode error) 'utf-8',这是因为本地没有utf-8编码,可以将后面的utf-8换成gbk等别的编码形式。

运算符

        大部分与别的语言一样。

        //将商取整。比如3.0/2得到的结果是1.5,如果是3.0//2则得到的结果是1.0。

        **幂运算符。如2**3=8,它表示2的3次幂。

        *:操作数为两数字时,就是数学中的乘法。当操作数只有一个是数字时,就是将非数字重复一定次数。如"a"*3,则得到的结果就是aaa。

>>> b = "abc"*3
>>> print(b) # 对于非字符串也一样
abcabcabc

切片

        可以通过下标取字符串、元组、列表中的指定位置的元素,如果取某一个范围内的元素,可以通过下面代码完成:

L=[]
test = ('a','b','c','d','e','f')
for x in range(1,5): # 通过循环取成对应的下标
	L.append(test[x]) # 再通过下标取出对应的元素
print L

        切片是对该过程的简化,它可以直接指定某一个范围内的下标。如上面的循环可以写成test[1:5],其结果是一样的。其一般形式为:start:end:step

        start指开始下标,含。

        end指结束下标,不含。

        step指步长,步长为正则从start向右直到end,步长为负则从start往左直到end,不指定时步长默认为1。步长为正时,不指定start则start为0,不指定end则end为最后一个元素;步长为负时,不指定start则start为-1,不指定end则end为第一个元素对应的负下标。

        注意:所有的切片都是含头不含尾下标也可为负数,-1指的是最后一个元素,-2指倒数第二个元素,其余依次类推。

        start:end:step——三者都指定,则下标的取值为start,start+step,start+2*step……min(start+k*step,end),k尽量取最大。如:

L=[]
test = ('a','b','c','d','e','f')
print test[-5:5:1] # ('b', 'c', 'd', 'e')

        -5对应的是是'b',5对应的是'f',步长为正,所以从'b’往右一直到'f‘,由于含头不含尾,所以输出的是'b'到'e’。再比如:

L=[]
test = ('a','b','c','d','e','f')
print test[-2:2:-1] # ('e', 'd')

        步长为负,所以从'e'到'c',输出的就是'e'','d'。

        从上两例可以看出,start与end的大小,正负不影响结果,只需要根据步长从左往右或从右往左即可。





版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C语言基础(一)编译、数据类型、注释、代码块

1、写代码注意事项:      (1)不要忘记导入头文件 #include      (2)main函数有且只有一个      (3)写完一行代...

JavaScript 语句、注释和代码块

总结 Javascript语句是给浏览器发出的命令,语句的作用是告诉浏览器该做什么 分号用于分隔JavaScript语句,要在一句可执行语句的末尾添加分号 JavaScript依照编写顺序依次执行每条...

iOS端项目注释规范附统一代码块

代码的注释经常被人忽略,以至于在后期维护的时候较为困难。我们准备在XX项目开始之前制定一套规范的注释体系,致力于达到就算维护人员改变也能快速上手的效果。 1.属性注释 属性注释 使用 /** 注释...

Python学习笔记:02 基础:变量、整数、字符串、赋值、基本输出、注释、代码块

字符串赋值 # String value assignment myStr = "hello" print "String variable 'myStr'" + \ ', which...

iOS开发-工具:巧用Xcode的代码块提高编码效率-code snippets

原文转自:http://www.sufeinet.com/thread-8732-1-1.html 在我们编码的过程中,总会发现有一些重复的编码工作,可能你会不厌其烦的去copy and paste,...

Source Insight中代码块注释(利用/**/)及取消注释实现方法

用了许久source Insight写C/C++代码,发现其中没有块注释功能很不方便,于是今天研究了下怎样让sourceInsight实现块注释。 网上介绍了很多方法实现块注释,但是都是对代码利用“...

第二期代码块材料

  • 2012-08-12 22:34
  • 165KB
  • 下载

vi/vim缩进,注释,替换,查找,修改, 跳转

多行缩进: 按v进入visual状态,选择多行,用>或 用v命令进入的字符可视化模式(Characterwise visual mode)。文本选择是以字符为单位的。 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)