码迷,mamicode.com
首页 > 其他好文 > 详细

pyhon基础

时间:2014-12-04 21:17:55      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   ar   color   sp   for   on   

 

1. def fun:定义函数

  def _initialize(self, key=16*‘\0‘, iv=16*‘\0‘):

    ....

  其中self相当于c/c++ this指针,可以不写,默认自带

2. pass用法:

    表示它不做任何事情,一般用做占位语句

 

//在c/c++中
if (a > 4) {
      //do nothing
} else {
    printf("less than 4")   
}
//在python中
if a > 4 : 
   pass #do nothing
else: 
   print "less than 4"

 

3. isinstance(实例化对象,类)作用: 判断实例化对象是不是该类实例化的,是返回True,不是返回False 

 class Base:

  pass

 b = Base()

   print isinstance(b, Base)

4. python 字符串操作:http://www.cnpythoner.com/wiki/string.html

  ‘ ’.join("abcd")

5. python异常处理:http://hanyuejuan.blog.163.com/blog/static/52929232201301844912530/

   try..except

   try...finally

   raise

          自定义异常

6. python文件的写法:

  method1. 第一行引入:#!/usr/bin/env    /usr/bin/python

    method2. 可以不写method1这句话,可以直接在命令行调用pyhon,然后import 该py文件

7. ctypes: python foreign library.用来兼容c数据类型和调用dll/so文件的函数,同时把他们包装成纯粹的python库:https://docs.python.org/2/library/ctypes.html#accessing-functions-from-loaded-dlls

  1. load dynamc libraries

>>> cdll.LoadLibrary("libc.so.6") 
<CDLL libc.so.6, handle ... at ...>
>>> libc = CDLL("libc.so.6")     
>>> libc                         
<CDLL libc.so.6, handle ... at ...>
>>>

 

  2. call function

  print libc.time(None)

      3. ctype类型

ctypes typeC typePython type
c_bool _Bool bool (1)
c_char char 1-character string
c_wchar wchar_t 1-character unicode string
c_byte char int/long
c_ubyte unsigned char int/long
c_short short int/long
c_ushort unsigned short int/long
c_int int int/long
c_uint unsigned int int/long
c_long long int/long
c_ulong unsigned long int/long
c_longlong __int64 or long long int/long
c_ulonglong unsigned __int64 or unsigned long long int/long
c_float float float
c_double double float
c_longdouble long double float
c_char_p char * (NUL terminated) string or None
c_wchar_p wchar_t * (NUL terminated) unicode or None
c_void_p void * int/long or None

    

>>> i = c_int(42)
>>> print i
c_long(42)
>>> print i.value
42
>>> i.value = -99
>>> print i.value
-99

 

 

multable memory blocks:

>>>from ctypes import *
>>>c_s = c_char_p("hello")
>>>print c_s.value
hello
>>>p = c_s
>>>print p.value
hello
>>>p.value="aaaa"
>>>print p.value c_s.value
"aaaa" "hello"

#结论:Python strings are immutable

>>>from cypes import *
>>>p = create_string_buffer( "aaa")
>>>print sizeof(p), repr(p.raw)
4aaa\x00‘
>>>c_s = p
>>>print c_s.value
aaa
>>> c_s.value="bbb"
>>>print c.s_value p.value
bbb   bbb
#结论:If you need mutable memory blocks, ctypes has a create_string_buffer() function which creates these in various ways.

 

 

8.ord

  chr()根据整数返回对应的字符,也就是讲ascii转换为字符

  unichr()将整数返回成unicode字符

  ord()将字符转换成ascii码

8. repr

9.导入动态库方法

  library_path = ‘C:/Python27/Lib/site-packages/CryptoMobile/‘

  library_suf = ‘.so‘
  library_name = [‘SNOW_3G‘, ‘Kasumi‘, ‘ZUC‘]

  def load_lib(name=None):
    if name == None:
      libraries = [‘‘.join((library_path, lib, library_suf)) for lib in library_name]
      return map(cdll.LoadLibrary, libraries)
    elif isinstance(name, str) and name in library_name:
      return cdll.LoadLibrary(‘‘.join((library_path, name, library_suf)))

  __func_Initialization = lib.Initiallization#调用lib库里面的函数

  __func_Initialization.argtypes = [POINTER(c_ubyte), POINTER(c_ubyte)]

  __func_Initialization.restype= None

 

 

10. __init__

相当于c++的构造函数

class Person:
    def __init__(self, name):
        self.name = name

    def sayHi(self):
        print ‘Hello, my name is‘, self.name

p = Person(‘Swaroop‘)
p.sayHi()

11. Python中filter、map、reduce、lambda 的用法

 

pyhon基础

标签:style   blog   http   io   ar   color   sp   for   on   

原文地址:http://www.cnblogs.com/457220157-FTD/p/4143681.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!