标签: Python
在Ubuntu下跑的,貌似装了一些软件以后已经有装好的Python了,直接在控制台上输入python2
或者python3
进入相应的版本,第一行即给出了具体的版本号,最新的是Python 2.7.12
或Python 3.5.2
,目前2具有更好的兼容性。
python
写的程序为*.py
,终端进入对应文件夹下python2 *.py
即可运行。
另外又装了一款多平台IDE, Pycharm,在Windows里跑很方便。
以下划线开头的标识符是有特殊意义的。以单下划线开头(_foo
)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用”from xxx import *”而导入;以双下划线开头的__foo
代表类的私有成员;以双下划线开头和结尾的__foo__
代表python里特殊方法专用的标识,如__init__()
代表类的构造函数。
和C相比而言,有几处不同:
冒号表示段落的开始。用缩进代替花括号,但必须严格缩进一样数量的空格。建议你在每个缩进层次使用 单个制表符 或 两个空格 或 四个空格 , 切记不能混用。错误提示IndentationError: unindent does not match any outer indentation level使用斜杠( /
)将一行的语句分为多行显示,而[]
, {}
或 ()
括号就不需要。
注释符 #
或者 三引号
。
在同一行中使用多条语句,语句之间使用分号(;
)分割,行末可以不加。
在IDE中要支持中文,必须在设置中改变编码类型为UTF-8
,并在行首加
如果还是报错,注意这句话等号两边都不要加空格!
input
:会根据用户的输入来做类型的转换 raw_input
:则会把用户的输入都作为一个字符串来处理(所见即所得)
输出类似于C中sprintf的写法
print "My name is %s and weight is %d kg!" % ('Zara', 21)解决py2会自动输出回车的方法
from __future__ import print_function # 用py3的print的写法print(x, end="") # 表示结束符不用回车也可以对整个文件做处理,新建文件、写入内容、删除文件。系统指令很多,要用时查表。
fo = open("a.cpp", "wb") # 打开/新建文件fo.write("a=10/nprint a") # 写入内容fo.write(r''' #include <bits/stdc++.h>int main(){ int x, y; while(~scanf("%d%d", &x, &y)) printf("%d + %d = %d/n", x, y, x+y); return 0;}''') # r可以避免转义字符生效fo.close() # 关闭文件import os # 载入os库os.remove("a.cpp") # 移除文件简单类型:int
long
float
complex
bool
容器类型:string
list
tuple
变量赋值不需要类型声明。
可以为多个对象指定多个变量。例如下面两句话等价,前面的赋值更加简洁。
a, b, c = 1, 2, "john"a = 1; b = 2; c = "John"要调用一些数学变量和常用函数,先载入头文件再调用
import mathmath.pimath.sin(x)help(math)help(math.acos)可以进行复数运算
x=2+3j 或 complex(2, 3)y=4+7jx/ystring使用方便 Python 接收单引号( '
)、双引号( "
)、三引号( '''
或 """
) 来表示字符串,引号的开始与结束必须的相同类型的。 其中三引号可以引用多行。 +
表示连接,*
表示重复。
列表[]等价于C语言里的数组 +
表示连接,*
表示重复。
元组()类似于列表,但只读,不能二次赋值,系统会报错
tuple = (4,5,'pp')ct = list(tuple) # 元组转换到列表,可进行二次赋值tt = tuple(ct) # 反之,将列表转换到元组元字典{}等价于C++里的map
dict = {}dict['one'] = "This is one" # dict[key] = valuedict[2] = "This is two"tinydict = {'name': 'john','code':6734, 'dept': 'sales'} # dict = {key : value}print dict['one'] # 输出键为'one' 的值print dict[2] # 输出键为 2 的值print tinydict # 输出完整的字典print tinydict.keys() # 输出所有键print tinydict.values() # 输出所有值删除对象
del a和C差不多的就不赘述了,记一些不一样的 //
等价于对除法结果取floor()
**
等价于pow()
~
求补运算 <>
即!=
逻辑运算符用单词直接给 and
or
not
一些测试运算符,非常接近正常语言 in
not in
成员是否属于某一类 is
is not
对象实体一致性
设置了while...else...
以及for...else...
正常循环时,执行while
或者for
后会执行else
,但如果中途跳出,则不能执行else
。
for
循环迭代体有多种设置方式
定义函数后调用,其中参数都是直接引用的,和C不同。
def 函数名(参数x, y, z, *var): “一些说明” 函数体 return ***调用函数时可以选择一一对应传入参数;也可以打乱顺序指定变量名,此时也可省略一些参数。其中*表示参数数量不确定,传入多个以后会保存在元组var里。
函数名(xx, yy, zz)函数名(y=yy, x=xx, z=zz)lambda函数 lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
sum = lambda arg1, arg2: arg1 + arg2;在同一目录下生成新文件xxx.py
,在其他python文件下调用函数只需
想在模块里使用全局变量,则先声明后再使用
global var异常类型系统已有定义。也可以用户自定义。为了保证代码出错时不会立刻停止,
try: # 一段试着被执行的代码 fh = open("testfile", "w") fh.write("这是一个测试文件,用于测试异常!!")except IOError:# 当try里的内容出现错误,则在下面的except里找对应错误 print "Error: 没有找到文件或读取文件失败"else:# 不出现错误则执行 print "内容写入文件成功" fh.close()可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。
新闻热点
疑难解答