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: ")

///you can not input Alex, you can only input digital, 输入11,then name is 11

关于注释:

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

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

如下:

     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的文件

range([start,]stop[,step])     #返回一个整数列表,起始值为start,结束值为stop-1,star默认值为0,step默认值为1

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

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

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

原文地址:https://www.cnblogs.com/Leo_wl/p/2868144.html