Python入门小菜笔记
来源:互联网 发布:关于朱成分分析的数据 编辑:程序博客网 时间:2024/05/17 07:23
标签: 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
使用斜杠(
\
)将一行的语句分为多行显示,而[]
,{}
或()
括号就不需要。注释符
#
或者三引号
。在同一行中使用多条语句,语句之间使用分号(
;
)分割,行末可以不加。
输入输出
x=input()x=input("Please input a digit")print xprint 'abc'print 3
在IDE中要支持中文,必须在设置中改变编码类型为UTF-8
,并在行首加
# coding=utf-8
如果还是报错,注意这句话等号两边都不要加空格!
input
:会根据用户的输入来做类型的转换 raw_input
:则会把用户的输入都作为一个字符串来处理(所见即所得)
def input(prompt): return eval(raw_input(prompt))# eval(str)用来计算在字符串中的有效Python表达式,并返回一个对象 # 两次都输入3+5x = input("x:") print x # 输出8y = raw_input("y:")print y # 输出3+5
输出类似于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/y
string使用方便
Python 接收单引号( '
)、双引号( "
)、三引号( '''
或 """
) 来表示字符串,引号的开始与结束必须的相同类型的。
其中三引号可以引用多行。 +
表示连接,*
表示重复。
a = "python"print a[2:5]*2+a[0]+a[2:]
列表[]等价于C语言里的数组 +
表示连接,*
表示重复。
list = [4,5,'pp']len(list) # 读取容量大小list.append(x) # 塞入x
元组()类似于列表,但只读,不能二次赋值,系统会报错
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
循环迭代体有多种设置方式
x = [**, **, **]for y in x: **** # y作为迭代对象 for index in range(len(x)): **** # index为数组下标,range返回一个序列数组
时间函数
import timetime.time() # 自从1970年1月1日0点经过了多少秒time.localtime() # 化到struct_time元组time.asctime() # 能友好显示当地时间print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) # 2017-02-15 15:09:42
函数
定义函数后调用,其中参数都是直接引用的,和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文件下调用函数只需
import xxxxxx.function()dir(xxx) # 查看xxx.py里的函数
想在模块里使用全局变量,则先声明后再使用
global var
异常
异常类型系统已有定义。也可以用户自定义。为了保证代码出错时不会立刻停止,
try: # 一段试着被执行的代码 fh = open("testfile", "w") fh.write("这是一个测试文件,用于测试异常!!")except IOError:# 当try里的内容出现错误,则在下面的except里找对应错误 print "Error: 没有找到文件或读取文件失败"else:# 不出现错误则执行 print "内容写入文件成功" fh.close()
其他功能
可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。
- Python入门小菜笔记
- android小菜入门详解
- [Python小菜]__call__是什么
- 小菜总结笔记。
- ML入门小菜一枚
- 【小菜笔记】Interface的多态性
- Python 入门笔记
- Python入门笔记
- Python 入门笔记
- python入门笔记
- Python入门笔记
- python入门相关笔记
- python入门笔记
- python 入门笔记1
- Python入门笔记:集合
- python入门笔记
- python入门学习笔记
- python入门笔记--循环
- 【国家集训队2012】tree(伍一鸣)
- bootstrapValidator 如何重新启用提交按钮
- photoshop第十四章:制作阳光浪漫场景效果
- 知识库--面向对象编程的缺陷(The Deficiency of the Object Model)(118)
- AChartEngine高级应用之CombinedXYChart(组合统计图)在单个统计图上显示多样化的数据
- Python入门小菜笔记
- Codeforces Canada Cup 2016 F. Family Photos 博弈 策略分析 好题
- 关于socket用winform实现简单通信 大牛可绕道 初学者可以看看 我做的时候把客户端窗口隐藏了 大家可以自己改一下
- 二叉树非递归遍历,重构
- spring4.1.6整合Struts2.5.5
- python encode和decode函数说明
- 谷歌浏览器提示Adobe Flash Player 已过期解决
- 初学机器学习笔记
- 【.Net Framework 体积大?】不安装.net framework 也能运行!?原理简介补充附带工具-2