Data structure

我们可以批量把字典放进列表里。而这种形式对的数据我们叫它们数据结构。

cat = []
cat.append({'name':'Zophie,'age':7,'color':'gray'})

# The list of dictionaries is called a data structure.

在程序项目中我们可以利用这一特性写出 Tic Tac Toe 棋类小游戏。

theBoard = {'top-L':' ','top-M':' ','top-R':' ','mid-L':' ','mid-M':'X','mid-R':' ','low-L':' ','low-M':' ','low-R':' '}
# 我们可以设计一个这样的数据结构组成游戏面板

接下来我们只需要考虑当用户输入某个位置操作时候每个小方块里显示什么就可以了,比如 theBoard[‘top-L’ = ‘O’] 这样子。


设计理念有了,现在我们需要用 def 一步步做 details, 比如如何先打印出一个漂亮的面板先显示出来。

def printBoard(board):
    print(board['top-L'] + '|' + board['top-M'] + '|' + board['top-R'])
    print('-----')
    # 下面以此类整理


Advanced String Syntax

和 Java 设计理念一样,string 是字符堆积而成。

print(r'This is \s carols cat')
# Python 中的 raw string 可以帮助我们绕过解析符号直接打印他们

spam = 'Hello'
spam[0]
spam[1:5]

Methods

upper() # 转换大写

lower() # 转换小写

isupper()
islower() # 两个 bool 函数

isalpha() # 这个共呢个会检测字母的连续性,String 里一旦出现空格就会返回 False

isalnum() # String 里只能出现字符和数字,同理一旦出现空格直接 False

isdecimal() # 只能出现数字

isspace() # 只能是空白格

istitle() # 意思就是句子里每个单词都要开头第一个字母大写

title() # 变开头大写

startswith() 
endswith()
join() # 这个 method 用于把一堆单独的列表字符整合在一起变成一个单独的 string

",".join(['cats','rats','bats'])
'My name'.split() # 特定字符分割

'Hello'.rjust(10) # 就会把包含在 Hello 内的空间调整到 10 位然后 Hello 向右移

'Hello'.rjust(10,'*') # 特定字符格式化

'Hello'.ljust(10)
'Hello'.center(20,'-') # 居中然后控制在 20

strip() rstrip lstrip()
# 删除 string 中的空格或者特定字符

'skjcnskcns'.strip('s') # 或者替换

"cdscds".replace('d','s')

pyperclip 模块复习。

import pyperclip 
pyperclip.copy('Hello!!!!!')
pyperclip.paste()

Formatting

print("Hello %s, you are invite to a party at %s at %s at %s. Please bring %s." % (name,place,time,food))
# 同理我们可以用 %d 解析数字和 format 格式优化打印,详细格式化可以参见之前博客


Launching Python

Shebang Line 一般用于启动的时候识别现在应该用什么版本的 python.

Windows #! python3 OS X #! /usr/bin/env python3 Linux #! /usr/bin/python3

Windows 的 shell 中 TAB 按键同理直接补全命令。

  • 在一些 Windows 7 电脑中运行 python 会一闪而过,可以写个 bat 文件解决。

@python *.py
@pause

  • 日后我们在自动化处理的时候同理可以把 .py 文件加入环境变量 Win + R 自动化处理文件。
import sys
sys.argv 
# 日后可以用个这个交互程序,特定选项执行特定任务