好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

python学习

python学习

关于help:

python中 help(raw_input)

结果如下:

Help on built-in function raw_input in module __builtin__:

raw_input(...)
raw_input([prompt]) -> string

Read a string from standard input. The trailing newline is stripped.
If the user hits EOF (Unix: Ctl-D, Windows: Ctl-Z+Return), raise EOFError.
On Unix, GNU readline is used if enabled. The prompt string, if given,
is printed without a trailing newline before reading.
lines 1-9/9 (END)

关于输出:

如何输出多个格式化值

print "%s is number %d" % ("hello",1) 必须加上括号

关于输入:

raw_input()和input()的区别

raw_input()既可接受数字类型的输入也可接受字符型输入,如下:

name = raw_input("your name: ")  

///you can input Alex,then name is Alex

but name = input("your name: ")

关于注释:

一种是对于某一个代码块的功能的描述,如#

还有一种是对某个模块,类或者函数的起始处添加一个字符串,起在线文档功能

如下:

      def   foo():
              "  this is a doc string.  " 
              return  True
那么如何输出foo()的注释呢?
print f.__doc__ 或者 help(f) 也可以
///this is a doc string.

关于and 和 or :
等价于 && 和 ||

关于字符串中取出子串:
string = "hello world"
///string[2] = l
///string[:] = "hello world"
///string[1:] = "ello world"

还有一个非常特别的东西,那就是
///string[-1] = d 从后面到前面是从-1开始

字符串连接操作:+ 字符串重复操作:*
'hello'+'world'
///helloworld
'hello'*2
///hellohello

关于for循环:
for循环中任何可迭代的对象都可以被for循环迭代,不管是字符串,列表,元组,字典,还是文件

关于列表解析:

[表达式 for x in 可迭代对象 if 表达式]

squared = [x**2  for  x  in  range(4)]    #  求x的平方 
sqdEvens = [x**2  for  x  in  range(8)  if   not  x % 2]      #    求x平方中能够被2整除的

文件操作:

filename = raw_input( "  输入文件名:  "  )
      fs  = open(filename, '  r  '  )
        for  eachLine  in   fs:
              print   eachLine,
      fs.close() 
 
好有意思,竟然文件也可以被迭代
取出文件中每一个单词,并保存在一个列表中,如何做?

 代码如下:

 #  !/usr/bin/env python 
 import   re

fs  = open( '  hello  ' , '  r  '  )
S  =  [];
  for  line  in   fs:   //迭代操作文件的每一行
       print   line
    line  = line.split( '   '  ) // 以空格作为划分生成一个列表
       for  s  in   line:
        s  = re.match(r '  [a-zA-Z0-9]+  '  ,s).group(0)   //group(0)才是匹配的字符串 
        S.append(s)     //列表尾添加元素,可以使用append,但是append智能一个个的添加
             //如何将一个列表插入另一个列表的尾呢?可以使用+,a+b,就是将列表b添加到列表b的后面。 print S

文件如下:

hello world, Alex is king.
your name is alex

运行结果如下:

当然要修改文件,或者读取文件中某些字符,也可以使用read(),readline(),readlines(),write(),..

下面当然要介绍python操作文件的所有模式,

打开一个文件有集中模式,首先是open(file,'r')表示只读,open(file,'w')表示只写,不能读,open(file,'+')表示可写可读,open(file,'a')表示只写,不可读。

open(file,'w')表示只写

open(file,'a')表示只写

两者同时表示只写,但是是有区别的,第一种会将文件的内存冲洗掉,重新从文件开头写入新的值,而第二种从文件尾写入,不会冲洗掉文件原来的东西。

而且什么时候才真的写入是有规定的,因为写是有缓冲区的,为了减少I/O的操作,不会每一次的写入马上就进入文件,而是先写到缓冲区中,然等缓冲区慢,或者文件close掉,才写入文件,所以为了防止异常出现而导致文件没有close掉,导致内容没有写入缓冲区,所以一定要保证每一次写入都是成功的,而不是只停留在缓冲区中。当然缓冲区的大小也可以指定,默认一般4KB,有一个函数flush(),调用后可不用close(),就可以将缓冲区的内容写入文件中。

read(size),当size设置了值,则读size大小的字符,当size没设置,则读整个文件。当然读的过程会改变当前位置指针的值

readline(size),当size设置了,如果不超过一行的大小,则读取size大小的字符数,如果超过了一行的大小,将当前文件指针指向的这一行,从文件指针开始读,直到遇到换行停止。

readlines(size),当size设置了,如果不超过一行的大小,则读取size大小的字符数,如果超过了一行的大小,则不像readline(),它可以跨行读取,一次读取多行,读大小size停止而已。

seek(size),将文件当前指针指向从文件头开始到size大小的时候停止。

fs.seek(0)指针停在了文件头

 tell(...)
 |      tell() -> current file position, an integer (may be a long integer).

 write(...)
 |      write(str) -> None.  Write string str to file.
 |      
 |      Note that due to buffering, flush() or close() may be needed before
 |      the file on disk reflects the data written.
 |  
 |  writelines(...)
 |      writelines(sequence_of_strings) -> None.  Write the strings to the file.
 |      
 |      Note that newlines are not added.  The sequence can be any iterable object
 |      producing strings. This is equivalent to calling write() for each string.

实用的函数

dir([obj])     #显示对象的属性,如果没有提供参数,则显示全局变量的名字

help([obj])   #显示对象的文档字符串帮助,没提供参数则会进入交互式帮助

int(obj)       #将一个对象转换为整型

len(obj)       #返回对象的长度

open(fn,mode)      #以mode方式打开一个文件名为fn的文件

raw_input(str)       #等待用户输入一个字符串,可以提供一个可选的参数用作提示信息。

str(obj)                #将一个对象转换为字符串

type(obj)              #返回对象的类型(返回值本省是一type对象!)

作者: Leo_wl

    

出处: http://www.cnblogs.com/Leo_wl/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于python学习的详细内容...

  阅读:50次