笨方法学python笔记

命令行

  pwd(‘print working directory’)

  cd ~ 可以回到home路径

  mkdir  创建文件夹,如有空格要加" ",如"i have fun"

  cd ../..  回到上两层目录

PYTHON

  round() 四舍五入浮点数

  ''' ''' 定义多行字符串

  %r是原始表示,raw,用于调试

  print后面加逗号,print就不会输出换行符

  raw_input()返回的是字符串,input()返回整型或字符串。intput()输入字符串要加引号如'aaa'。当输入一个式子比如4+5,input()输出9,raw_input()输出4+5,input()避免使用input()

  (python3没有raw_input(),input()返回的是字符串)

  int(raw_input())强制转换为整型

  代码太长时,括号可以拆成两行

  win下,python -m pydoc raw_input 可以查看raw_input()的帮助函数

argv和raw_input()的不同在于,argv是用户在执行命令时就要输入参数,如果是脚本运行过程中需要用户输入,用raw_input()命令行参数是字符串。

在提示符下使用open打开一个文件:txt=open('sample.txt')    txt.read()

txt=open(filename)返回的不是文件内容,是一个”file object”

  关于from sys import argv,sys是一个软件包,从该软件包中取出argv这个特性来用,类比c中的#include<>

  读写:'a'(append追加),w+,r+,a+,同时读写的方式打开。open(filename)默认用'r'打开

用’w’模式打开文件,会清除文件内容,即覆盖掉旧文件,之后不需要target.truncate()

text.read()返回值是字符串

控制台中 cat 1.txt 可以直接显示文件内容

f.seek(0)回到文件开始位置,f.seek(1)定位到当前位置

f.readline()会读取文件的一行,然后将“磁头”移动到\n后面

print 语句会自动添加一个\n,在print后面加个逗号就不会自动添加了

函数内部的变量是临时的

split()函数 http://www.runoob.com/python/att-string-split.html

str.split(str="", num=string.count(str)) 

txt=open("sample.txt")

(txt.read()).split(' ')

sorted() 函数 https://www.cnblogs.com/woshitianma/p/3222989.html

pop()函数 https://www.cnblogs.com/sunxiaotao/p/4462347.html

pop(-1)  列表最后一个元素出栈

import ex25 不需要加 .py ,把ex25.py当做一个“模块”,可以直接调用里面的函数

help(ex25)可得到模块帮助文档。

from ex25 import * 可以导入模块,就可以直接在控制台调用函数了

if、else 后面要跟冒号,只要有冒号,下面的代码块就要缩进

if、elif、else 只会运行一个

1<x<10 ?可用 x in range(1,10) 表示

x=int(raw_input('>'))
if x in range(1,10):
    print '1<x<10'

 

range()函数 http://www.runoob.com/python/python-func-range.html

list http://www.runoob.com/python/python-lists.html

if not next.isdigit() :#判断是不是数字http://blog.csdn.net/hjxu2016/article/details/60112572

exit(0)正常退出 exit(1)发生错误中断

python 关键字 https://www.cnblogs.com/xueweihan/p/4518022.html

mystuff.append(“hello”) 的工作原理:找到mystuff对应的变量,是个列表,找到列表的append函数,真正运行的是append(mystuff,”hello”)    

‘-‘.join(stuff)  用’-‘连接stuff中的字符串 原理:join(‘-‘,stuff)

stuff[3:5]是个列表切片,从第三个元素开始取值,直到第五个元素,不包含第五个。类比range(3,5)

字典方法item(),返回(键, 值)元组数组

states={'BJ':'BeiJing','SH':'ShangHai'}
for key,value in states.items():
    print value

输出:

ShangHai
BeiJing

字典方法get(),查找有没有该键,没有就返回默认值 http://www.runoob.com/python/att-dictionary-get.html

states={'BJ':'BeiJing','SH':'ShangHai'}
state1=states.get('BJ')
print state1
state2=states.get('GZ')
print state2
state3=states.get('GZ','can\'t find')
print state3

输出:

BeiJing
None
can't find

 python有个通用的模式:

  1.拿一个类似“键=值”风格的容器

  2.通过“键”的名称获取其中的“值”

  对于字典来说,键是一个字符串,获取值的语法是"[键]"。对于模块来说键是函数,获取值的语法是".键"

模块的另一种理解:把它当做一种特殊的字典,通过"."来访问里面的代码。类是一种相似的结构。

类,迷你模块。模块的导入对应类的实例化。“实例化”意思是创建,一个类实例化之后,就得到了一个对象。 

class MyStuff(object):
    def __init__(self):
        self.tangerine = "And now a thousand years between"
    
    def apple(self):
        print "I AM CLASSY APPLES"
thing = MyStuff()
thing.apple()
print thing.tangerine

输出:

I AM CLASSY APPLES
And now a thousand years between

   上面代码的过程:

  1.python看到MyStuff()并且知道了他是已定义的类;

  2.python创建一个空对象self,里面包含该类中用def创建的函数,__init__(self)和apple(self);

  3.python会检查是否创建了一个__init__函数,如果有创建,就会调用这个函数,从而对刚创建的空对象实现了初始化;

  4.__init__中的参数self就是刚刚创建的空对象,可以对他进行类似模块、字典的操作;

  5.self.tangerine = "And now a thousand years between",初始化了该对象

  6.python将刚刚新建的对象self赋给一个叫thing的变量

   

  类:一个新的类型的东西

  对象:最基本的东西或者某个东西的实例

  实例:一个新创建的东西

  对象是类的实例。对象属于某个类,而某个类又属于另一个类。

  

  self:在类的函数中,self指代被访问的对象或者实例的一个变量。self代表类的实例,而非类。

  继承:一个类继承另一个类的特性,类比父与子

  组合:一个类可以将别的类作为他的部件构建起来,类比车子和车轮

  属性:来自于组合,通常是一个变量

  是什么(is-a):用来描述继承关系,鲑鱼是一种鱼(Salmon is-a fish)

  有什么(has-a):用来描述某个东西是由别的东西组成的,或者某个东西有某个特征,鲑鱼有一张嘴(Salmon has-a mouth)

  

  class X(Y):创建一个叫X的类,它是Y的一种。(继承)

  b=a[:]  ,将列表a复制给b  如果是b=a,只是地址赋给b

  class Name(object)  object是一个类

  super()函数:在super机制里可以保证公共父类仅被执行一次,执行的顺序是按照MRO(Method Resolution Order)方法解析顺序进行的。https://www.jianshu.com/p/45619cf50aa7

 

  面向对象的分析和设计:

    1.写出要解决的问题,或者画出流程图

    2.将关键概念摘录出来

    3.创造类图

    4.用代码实现类

    这是一个自顶向下的流程,将抽象的概念逐渐细化,直到变成具体的代码。

    

转载于:https://www.cnblogs.com/betterluo/p/7895799.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值