Python Syntax
--Variables
--Data types, such as numbers and booleans (True or False)
--Whitespace (structure the code)
--Comment (单行# 多行’’’ ‘’’)
--Math operation (+, -, *, /, %, **),支持*=之类的复合操作,但不支持++
Strings & Console Output
--Strings (“alpha”, ‘alpha’, str(3)), Escaping characters (单引号字符串), Access by index
-- String mathods: lower, upper, len, str()
--print: string concatenation+, string formatting with %, 行连接符\,
-- Date and Time
-- from datetime import datetime
-- now = datetime.now cur_year = now. year, month, day
Condition & control flow
-- comparators
-- boolean operator: and,or, not
-- if…else or if…elif…else
-- pygLatin
-- isalpha()
-- new_word[1:len(new_word)]
Functions
-- Generic imports:import math
-- Function import: from module import function
-- Universal imports: from module import *
-- dir(math) 返回math 中所有内容,
-- built-in functions: min,max, abs, type, sum, len
-- 参数带*或**,将传入实参解析为tuple或dict
Lists and Dictionary
-- list stores a collection, 初始化和indexing均是[], 下标从0开始
-- List slicing: letters[1:5]不包括最后一个值 1,2,3,4,前后均可缺
-- 返回相应值对应的下标,.index(),如果没找到则报错!
-- 插入List:.insert(ind,val), .append(val), 5*5 grid: [“0”]*5,.extend(lst2)
-- 删除List:.remove(val),无返回, pop()默认删除最后一个,也可指定删除位置
-- forvar in list_name
--dictionary的创建 menu = {‘key1’: 1} 或者直接{}, menu[‘key1’]=1
-- dictionary删除: delmenu[‘key’]
-- dictionary的值可以是多种类型
-- for key indictionary_name forletter in string_name
-- .count()返回list大小
Exe: Student Becomes the Teacher
-- Dictionary applied on a student profile
Lists and Functions
-- remove操作: .pop(ind)并返回, .remove(val)无返回,del(list[ind])无返回
-- range(st, ed,[step]) 不包括最后一个值
-- 两种遍历方式 for each in list: for i in range(0, len(list)):
-- string函数 str=” ”.join(slist) new_str=str.split(‘char’,[num])
-- 导入随机 from random import randint; randint(a,b)范围是[a,b]
-- [‘0’]*5和’0’*5的区别
-- 判断是否存在 if x not in range(8)
Loops
-- while循环,小心产生无限循环
-- break 跳出循环
-- while / else 当while通过break跳出,则不执行else,否则执行
-- 输入函数 raw_input()将所有输入当作字符串,返回字符串;input要求输入为合法python表达式,如果输入字符串需要加“”
-- print输入默认会换行,如果需要在同一行输出,则需要在末尾加 ,
-- for循环同时打印index和val, for index,item in enumerate(choices):
-- for循环同时遍历多个Lists, for a, b in zip(list_a, list_b)
-- for / else 道理同 while /else
Practice makes perfect
-- for 循环中 [0, len(str)) 逆序为 [-1, -len(str)]
-- 排序:一般可用list.sort()或者sorted(iterable[, cmp[, key[, reverse]]])
Advance Topics in Python
-- Dictionary迭代. My_dict.items() 返回无序的 key/value tuples
-- dictionary 返回keys,values: .keys(), .values(), 返回无序的list
-- “in” operator: Foriterating over lists, tuples, dictionaries, and strings.
-- Building lists. Range()or evens_to_50 = [i for i in range(51) if i % 2 == 0]
-- List Slicing Syntax: [start:end:stride] Reversing a list: [-1: len(lst)-1: -1]
-- Anonymous functions lambda: lambda variable: expression
g = lambda x: x * 2 , g成了一个函数
--filter函数:filter(function, sequence)对sequence中item依次执行function(item),将结果为True的item组成一个List/String/Tuple
Introduction to Bitwise Operation
-- >>左移,相当于除2;右移,相当于乘2;或|,相当于加
-- 二进制格式, 加上前缀 0b,可以进行正常的代数计算,比如+,-,*,/
-- bin():将整数转化成二进制字符串;此外还有,八进制oct(),十六进制hex()
-- int(): 将非整数转成整数,int(str, base),比如 int(“1”,2)将”1”转成2进制数
-- bit operations: & |~ << >> ^
-- Bit mask off &,使用&轻松确定右起某位的值,比如 &0b100
-- Turn it On |, 利用|可以讲某位置1
-- Just Flip out ^, 利用^进行XOR操作,可轻松将至取反,例如0b110 ^ 0b111
-- Slip and Slide. << 与 ^
Introduction to Class
-- class syntax: class NewClass(object): 括号中为父类,通常类名首字母大写
-- Pass:通常作为类内容的替代符
-- __init__(self), 用于初始化对象。Python构造对象是会默认调用。如果没有显示定义,也会默认合成一个;另外可继承,子类如果没有定义,则默认执行父类一样的初始化
-- 所有成员函数都需要显示传入self(是对象),相当于C++的this(是指针)
-- Python的类的数据成员有两类:global变量(相当于static数据),另外就是member数据
-- Python的所有成员(数据,函数)都是相当于public的?
-- 内置函数 __repr__(): 返回需要的字符串形式,可自动调用
-- 子类如何初始化父类,可以调用BaseClass.__init__(self, ) 或者
super([type, obj]).method(arg), 注意在类内部直接调用super().method(arg)
File Input and Output
-- 打开文件 f = open(filename, “w” or “r”); 读写 f.write(...) or f.read(); 关闭f.close()
-- 读写flag: “w”->write, “r”->read-only,“r+”->read and write mode, “a”->append
-- write(str)必须传入string, 需要自己添加换行符 “\n”
-- read() and readline()
-- PSA: Buffering Data, 写数据会存在临时buffer中,直到close时数据才会写进文件
-- with / as: 促发 __exit__()的自动调用,没有写close()也没关系。如下
withopen("text.txt", "w") as textfile: #注意冒号和缩进
textfile.write("Success!")
-- file object有个closed属性,可以判断是否已经closed