python basic note

偶尔用Python做点事情,用的时候隔了许久,又不太记得了,有时连基本的语法都忘掉,这里记录在一张纸上,方便查看。也涵盖比较实用的内容,方便信手捻来(我没写错吧

其中代码片段主要摘自前段时间写的一些Python代码。

  • Python Help

>>> python(“subprocess”)

帮助是很重要,linux程序员,你懂的

  • Python tutorial

https://docs.python.org/2/tutorial/

初学Python的人用这个好,计算机领域,不懂的google tutorial,你也懂的

  • Framework

1. Inherit, 要写大点的东西,面向对象不能少

import subprocess 
 
class VirtualCommand(): 
        def __init__(self): 
                self._cmdstr = None 
                pass 
 
        def cmdstr(self): 
                return self._cmdstr 
 
        def execute(self): 
                return True 
 
class Command(VirtualCommand): 
        def __init__(self, cmdstr="echo hello"): # default value to cmdstr 
                VirtualCommand.__init__(self)    # call init of parent 
                self._cmdstr = cmdstr.strip() 
 
        # called by Task methods, and can be inheritted 
        def execute(self, stdin=None): 
                cmd = self._cmdstr.split(" ") 
                p = subprocess.Popen(cmd, stdin=stdin) 
                p.wait() 
                return True 
 
if __name__ == "__main__":      #main entry 
        cmd = Command("ls") 
        cmd.execute()

2. Input and flow control basic,有时连这些都不记得了

if __name__ == "__main__":      #main entry 
        x = int(raw_input("Please enter an integer: ")) 
        if x < 0: 
                print "Negative" 
        elif x == 0: 
                print "Zero" 
        else:    
                print "More" 
                 
        str = "this is a line" 
        for word in str.split(): 
                print word 
 
        for i in range(10): 
                print i 
 
        i = 0 
        while i < 10: 
                print i 
                i += 1

3. file operation, string to int, 2d array usage

if __name__ == "__main__": 
        m = [[0 for x in range(6)] for x in range(8)]  # initialization of 2d array
        with open("aa") as f: 
                content = f.readlines() 
        i = 0 
        for line in content: 
                la = line.split(",") 
                m[cnt][0] = int(la[0])  #received 
                m[cnt][1] = int(la[1])  #injected 
        ... ...
                cnt += 1

4. input parameters, signal, dictionary

import sys 
import signal 
import time 
 
class Generator: 
    mod_name = ‘generator‘ 
    running = True 
     
    help = """Usage: snorttf.py [parameter=value] 
Parameters: 
    hs        http speed(default is 1000) 
    ds        dns speed(default is 10) 
    ss        smtp speed(default is 10) 
    server        smtp server 
    """ 
 
    args = { 
        ‘hs‘ : ‘1000‘, 
        ‘ds‘  : ‘10‘,      
        ‘ss‘ : ‘10‘,        
        "server" : "test11" 
        } 
 
    def __init__(self, args): 
        self.get_input_param(args)           
         
    def get_input_param(self, input_args): 
        arg_num = len(input_args) 
        for i in range(1, arg_num): 
            arg = input_args[i] 
            elms = arg.split(‘=‘) 
            if elms[0] == ‘help‘: 
                print self.help 
                sys.exit(0) 
#            print elms 
            if elms[0] in self.args and len(elms) == 2: 
                self.args[elms[0]] = elms[1] 
            else: 
                print ‘input wrong argument:‘, arg 
                print self.help 
                sys.exit(0)  
                             
    def check_parameters(self): 
        self.httpspeed = int(self.args[‘hs‘]) 
        self.dnsspeed = int(self.args[‘ds‘]) 
        self.smtpspeed = int(self.args[‘ss‘]) 
        self.mailserver = self.args[‘server‘] 
        pass 
 
    def run_client(self): 
        self.check_parameters() 
        print "hs: " + str(self.httpspeed) + " ds: " + str(self.dnsspeed) + \ 
                " ss: " + str(self.smtpspeed) + " server: " + self.mailserver 
        #TODO 
        while self.running: 
            #TODO 
            time.sleep(1) 
        print "exit" 
 
if __name__ == "__main__": 
        def signal_handler(signal, frame): 
            Generator.running = False 
 
        signal.signal(signal.SIGINT, signal_handler) 
        g = Generator(sys.argv) 
        g.run_client()
  • Basic

1. List
# 2d list, method len(), append()

>>> q = [2, 3]
>>> p = [1, q, 4]
>>> len(p)
3
>>> p[1]
[2, 3]
>>> p[1][0]
2
>>> p[1].append(‘xtra‘)     # See section 5.1
>>> p
[1, [2, 3, ‘xtra‘], 4]
# method sort()
>>> a = [66.25, 333, 333, 1, 1234.5]
>>> a.sort()
>>> a
[1, 66.25, 333, 333, 1234.5]

# As stack

>>> stack = [3, 4, 5]
>>> stack.append(6)
>>> stack.append(7)
>>> stack
[3, 4, 5, 6, 7]
>>> stack.pop()
7

#As Queue
#from collections import deque

>>> queue = deque(["Eric", "John", "Michael"])
>>> queue.append("Terry")           # Terry arrives
>>> queue.append("Graham")          # Graham arrives
>>> queue.popleft()                 # The first to arrive now leaves
‘Eric‘
>>> queue.popleft()                 # The second to arrive now leaves
‘John‘
>>> queue                           # Remaining queue in order of arrival
deque([‘Michael‘, ‘Terry‘, ‘Graham‘])

2. ssh through paramiko

    ssh = paramiko.SSHClient() 
    ssh.load_system_host_keys() 
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #WarningPolicy) 
    ssh.connect(host, port, username, password)
    ssh.exec_command(self._cmdstr)

3. thread

    thread.start_new_thread(print_log, ("out", self._aout))

4. xml process

import xml.etree.ElementTree as ET
def get_config_env(path): 
    tree = ET.parse(path) 
    root = tree.getroot() 
    for child in root: 
        print child.tag, child.attrib, child.text

5. exception
Here try to execute task, if get any execption, perform term() to terminate any resources

    try: 
        task.execute() 
    except: 
        task.term() 
        raise

Here show an example of throw execption,

    try:
        raise NameError(‘HiThere‘)
    except NameError:
        print ‘An exception flew by!‘
        raise
  • Skills

1. When a script file is used, it is sometimes useful to be able to run the script and enter interactive mode afterwards. This can be done by passing -i before the script.

2. installation
yum install python-setuptools  # this install easy_install
easy_install paramiko    # this install any modules

时间: 2024-10-11 05:22:18

python basic note的相关文章

Python Function Note

Python Function Note 1 #汉诺塔问题Python实现 2 def my_move(n, a, b, c): 3 if n == 1: 4 print(a + ' --> ' + c) 5 else: 6 my_move(n-1, a, c, b)#将前n-1个盘子从a放到b 7 my_move(1, a, b, c)#将最下面的盘子从a放到c 8 my_move(n-1, b, a, c)#将b上的n-1个盘子放到c上 9 return 1 #杨辉三角Python实现 2

#MySQL for Python(MySQLdb) Note

#MySQL for Python(MySQLdb) Note #切记不要在python中创建表,只做增删改查即可. #步骤:(0)引用库 -->(1)创建连接 -->(2)创建游标 -->(3)选择数据库 -->(4)执行语句 -->(5)关闭连接 #(0)引用库 import MySQLdb #(1)创建连接 con = MySQLdb.connect(user = "root", passwd = "123456",host =

000 Python Basic Tutorial -- Home

Python Tutorial Python is a general-purpose interpreted, interactive, object-oriented and high-level programming language. Python was created by Guido van Rossum in the late eighties and early nineties. Like Perl, Python source code is also now avail

Python - Learn Note (2)

Python基本数据类型 整数.浮点数(浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的).字符串(字符串是以''或""括起来的任意文本).布尔值.空值(空值是Python里一个特殊的值,用None表示) print语句 print语句也可以跟上多个字符串,用逗号","隔开,就可以连成一串输出,遇到逗号","会输出一个空格:使用"+"拼接不会产生空格 Python注释 Python

python regex note

To remember python regex easily, we organise python regex notes from concrete to abstract, and from simple to sophisticated. I, Important character: 1, Quantitive character: ? :[0,1],  *:[0,infi), +:(0,infi), {n}:[n rep], {m,}:[m, infi), {,n}:[0,n],

Python - learn note(1)

1. 下载安装Python 2.7(为了向下兼容以前的版本), Python 3.5(VS2015不支持配置3.6的环境) 教程 需要使用VS2015进行开发,必须勾选上后面两项: 2. VS2015开发Python Visual Studio集成了Python Tools for Visual Studio插件.我们只需要在自定义安装的时候点选安装即可.--配置开发环境 修改文件保存编码方式: 3.交互模式 :?根据主提示符(">>>")来执行命令 从属提示符(&q

Python basic 总结

作者:Vamei 出处:http://www.cnblogs.com/vamei 之前提到一句话: everything is object, 下面我们局深入体验一下这句话 需要先介绍两个内置函数, dir(), help() dir() 用来查询一个类活或者对象所有的属性, >>> print dir(list) help() 用来查询说明文档 >>> print help(list) list 是一个类 在上面以及看到,表是Python已经定义好的一个类.当我们新建

python -- basic

# 写在开头(学习推荐) ~ alex li Day教程 ~ 廖雪峰教程 ~ 菜鸟python3教程 ~ 努力哥python3教程 ~ 黑马教程 ~ 实验楼以及慕课网 一.基础认知: 1.python 是一门 动态 解释性 的 强类型定义 语言 # 编译 与 解释: 编译:把源程序的每一条语句都编译成机器语言,并保存成二进制文件, 这样运行起来计算机可以直接以机器语言来运行此程序,速度很快 解释:在程序执行时,才一条一条的解释成机器语言给计算机来执行 所以运行起来不如编译后的快 # 静态语言 与

Python manual note

This variable should be treated as read-only by the user. Don’t explicitly assign a value to it — you would create an independent local variable with the same name masking the built-in variable with its magic behavior.