#!/usr/bin/env python
#-*- coding:utf-8 -*-
'''
python遍历目录
http://laocao.blog.51cto.com/480714/525140
'''

import os

#输出总是先文件夹后文件名的
def Test1(rootDir): 
    list_dirs = os.walk(rootDir)
    for root, dirs, files in list_dirs: 
        for d in dirs: 
            print os.path.join(root, d)      
        for f in files:
            print os.path.join(root, f)

#按照目录树结构以及按照首字母排序进行输出的
def Test2(rootDir): 
    for lists in os.listdir(rootDir): 
        path = os.path.join(rootDir, lists) 
        print path 
        if os.path.isdir(path): 
            Test2(path)



if __name__ == '__main__':
    Test1('C://Intel')
    Test2('C:\Intel')

在生活、工作中,python一直都是一个好帮手。在python的众多功能中,我觉得文本处理是最常用的。下面是平常使用中的一些总结。环境是python
3.3

网上搜到一个Pygame写的俄罗斯方块(tetris),大部分看懂的前提下增加了注释,Fedora19下运行OK的

澳门微尼斯人手机版 1

  1. 基础
    在python中,使用str对象来保存字符串。str对象的建立很简单,使用单引号或双引号或3个单引号即可。例如:

主程序:

python#-*- coding:utf-8
-*-python遍历目录
os#输出总是先文件夹后文件名的def Test1(rootDir): list_dirs…

s=’nice’      #output: nice
s=”nice”      #output: nice
s=”Let’s go”  #output: Let’s go
s='”nice”‘    #output: “nice”
s=str(1)      #output: 1
s=”’nice
day”’        #output: nice
              #output: day

#coding:utf8
#! /usr/bin/env python
# 注释说明:shape表示一个俄罗斯方块形状 cell表示一个小方块
import sys
from random import choice
import pygame
from pygame.locals import *
from block import O, I, S, Z, L, J, T

在python中,\n代表换行符,\t代表tab键

COLS = 16
ROWS = 20
CELLS = COLS * ROWS
CELLPX = 32  # 每个cell的像素宽度
POS_FIRST_APPEAR = COLS / 2
SCREEN_SIZE = (COLS * CELLPX, ROWS * CELLPX)
COLOR_BG = (0, 0, 0)

在python中,引用str中的某一段的内容很容易。例如:

def draw(grid, pos=None):
    # grid是一个list,要么值为None,要么值为’Block’
    # 非空值在eval()的作用下,用于配置颜色
    if pos:  # 6×5
        s = pos – 3 – 2 * COLS  # upper left position
        for p in range(0, COLS):
            q = s + p * COLS
            for i in range(q, q + 6):
                if 0 <= i < CELLS:
                    # 0 <=i < CELLS:表示i这个cell在board内部。
                    c = eval(grid[i] + “.color”) if grid[i] else
COLOR_BG
                    #
执行着色。shape的cell涂对应的class设定好的颜色,否则涂黑(背景色)
                    a = i % COLS * CELLPX
                    b = i / COLS * CELLPX
                    screen.fill(c, (a, b, CELLPX, CELLPX))
    else:  # all
        screen.fill(COLOR_BG)
        for i, occupied in enumerate(grid):
            if occupied:
                c = eval(grid[i] + “.color”)  # 获取方块对应的颜色
                a = i % COLS * CELLPX  # 横向长度
                b = i / COLS * CELLPX  # 纵向长度
                screen.fill(c, (a, b, CELLPX, CELLPX))
                # fill:为cell上色, 第二个参数表示rect
    pygame.display.flip()
    # 刷新屏幕

s=’123456789′
s[0]          #第一个字符:     output: 1
s[-1]         #倒数第一个字符: output: 9
s[:2]         #前2个字符:     output: 12
s[-2:]        #后2个字符:     output: 89
s[2:-2]       #去掉前2个和后2个剩余的字符 output:34567
在python中,判断某一字符串是否在另一个字符串中:

def phi(grid1, grid2, pos):  # 4×4
# 两个grid之4*4区域内是否会相撞(冲突)
    s = pos – 2 – 1 * COLS  # upper left position
    for p in range(0, 4):
        q = s + p * COLS
        for i in range(q, q + 4):
            try:
                if grid1[i] and grid2[i]:
                    return False
            except:
                pass
    return True

‘nice’ in ‘nice day’ #output :Truetask 1.  按照某种格式生产字符串
在python中,str对象有一个方法用于实现这种功能,这个方法是:str.format(*args,**kwargs)。例子:

def merge(grid1, grid2):
    # 合并两个grid
    grid = grid1[:]
    for i, c in enumerate(grid2):
        if c:
            grid[i] = c
    return grid

‘1+2={0}’.format(1+2) 
#{0}是占位符,其中0表示是第一个需要被替换的。output: 1+2=3
‘{0}:{1}’.format(‘nice’,’day’)
#{0},{1}是占位符,{0}指第一被替换,替换成nice,{1}第二个被替换,替换成day。output:nice:day实际用途:

def complete(grid):
    # 减去满行
    n = 0
    for i in range(0, CELLS, COLS):
        # 步长为一行。
        if not None in grid[i:i + COLS]:
        #这一句很容易理解错误。
        #实际含义是:如果grid[i:i +
COLS]都不是None,那么执行下面的语句
            grid = [None] * COLS + grid[:i] + grid[i + COLS:]
            n += 1
    return grid, n
#n表示减去的行数,用作统计分数

我的手机拍照之后,手机的命名如下:

pygame.init()
pygame.event.set_blocked(None)
pygame.event.set_allowed((KEYDOWN, QUIT))
pygame.key.set_repeat(75, 0)
pygame.display.set_caption(‘Tetris’)
screen = pygame.display.set_mode(SCREEN_SIZE)
pygame.display.update()

发表评论

电子邮件地址不会被公开。 必填项已用*标注