差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
public:it:python [2014/12/03 16:49] – oakfire | public:it:python [2024/01/15 15:33] (当前版本) – [Tips] oakfire | ||
---|---|---|---|
行 1: | 行 1: | ||
====== Python ====== | ====== Python ====== | ||
* [[https:// | * [[https:// | ||
+ | * [[http:// | ||
===== Tips ===== | ===== Tips ===== | ||
* 快速开一个静态http服务: | * 快速开一个静态http服务: | ||
* In Terminal, type '' | * In Terminal, type '' | ||
- | * python为动态语言, | + | * python为动态语言, |
+ | * python 变快的 9 个技巧:[[https:// | ||
+ | * 拼接字符串的速度, | ||
+ | * Faster List Creation: Use “[]” Over “list()” 用 '' | ||
+ | * Faster Membership Testing: Use a Set Over a List | ||
+ | * Faster Data Generation: Use Comprehensions Over For Loops 用内包代替循环 | ||
+ | * Faster Loops: Prioritize Local Variables 优先使用局部变量 | ||
+ | * Faster Execution: Prioritize Built-In Modules and Libraries 优先用内置模块和库 | ||
+ | * Faster Function Calls: Leverage Cache Decorator for Easy Memoization | ||
+ | * Faster Infinite Loop: Prefer “while 1” Over “while True” 但是现代解释器基本都优化过, '' | ||
+ | * Faster Start-Up: Import Python Modules Smartly | ||
===== 从零开始 ===== | ===== 从零开始 ===== | ||
- | * [[http:// | + | * [[http:// |
- | * <code python> | + | * Learning more: |
- | # ex1: Print ------------------------------------------------------------------------- | + | * [[http:// |
+ | * [[https:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[https:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * Notes:<code python> | ||
+ | # ------------------------------------------------------------------------- | ||
+ | # ex1: Print | ||
# -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||
print " | print " | ||
行 16: | 行 42: | ||
python ex1.py | python ex1.py | ||
- | # ex2: Common | + | # ------------------------------------------------------------------------- |
+ | # ex2: Common | ||
# This is a common | # This is a common | ||
print " | print " | ||
- | # ex3: Numbers and Math | + | # ------------------------------------------------------------------------- |
+ | # ex3: Numbers and Math | ||
# + - / * % < > <= >= | # + - / * % < > <= >= | ||
# more: ** | # more: ** | ||
print " | print " | ||
- | # ex4: Variables And Names | + | # ------------------------------------------------------------------------- |
+ | # ex4: Variables And Names | ||
cars = 100 | cars = 100 | ||
space_in_a_car = 4.0 | space_in_a_car = 4.0 | ||
- | # ex5: More Variables and Printing | + | # ------------------------------------------------------------------------- |
+ | # ex5: More Variables and Printing | ||
my_name = ' | my_name = ' | ||
my_age = 16 | my_age = 16 | ||
行 35: | 行 65: | ||
print "My name is %s, i am %d old." % ( my_name, my_age ) | print "My name is %s, i am %d old." % ( my_name, my_age ) | ||
- | # ex6: Strings and Text | + | # ------------------------------------------------------------------------- |
+ | # ex6: Strings and Text | ||
print "My name is: %r" % " | print "My name is: %r" % " | ||
print "My name is: ' | print "My name is: ' | ||
行 41: | 行 72: | ||
print my_name % ' | print my_name % ' | ||
- | # ex7: More Printing | + | # ------------------------------------------------------------------------- |
+ | # ex7: More Printing | ||
print " | print " | ||
- | # ex8: Printing, Printing | + | # ------------------------------------------------------------------------- |
+ | # ex8: Printing, Printing | ||
formatter = "%r %r %r %r" | formatter = "%r %r %r %r" | ||
print formatter % (1, 2, 3, 4) | print formatter % (1, 2, 3, 4) | ||
行 51: | 行 84: | ||
print formatter % (formatter, formatter, formatter, formatter) | print formatter % (formatter, formatter, formatter, formatter) | ||
- | # ex9: Printing, Printing, Printing | + | # ------------------------------------------------------------------------- |
+ | # ex9: Printing, Printing, Printing | ||
# Here's some new strange stuff, remember type it exactly. | # Here's some new strange stuff, remember type it exactly. | ||
days = "Mon Tue Wed Thu Fri Sat Sun" | days = "Mon Tue Wed Thu Fri Sat Sun" | ||
行 63: | 行 97: | ||
Even 4 lines if we want, or 5, or 6. | Even 4 lines if we want, or 5, or 6. | ||
""" | """ | ||
- | # ex10 | + | # ------------------------------------------------------------------------- |
+ | # ex10 | ||
print "\t \\ \" ' | print "\t \\ \" ' | ||
- | # ex11: Asking Questions | + | # ------------------------------------------------------------------------- |
- | print "How old are you?", # We put a "," | + | # ex11: Asking Questions |
+ | print "How old are you?", # We put a "," | ||
+ | #so print doesn' | ||
age = raw_input() | age = raw_input() | ||
print "So, you're %r old" % age | print "So, you're %r old" % age | ||
- | # ex12: Prompting People | + | # ------------------------------------------------------------------------- |
+ | # ex12: Prompting People | ||
age = raw_input(" | age = raw_input(" | ||
- | # ex13: Parameters, Unpacking, Variables | + | # ------------------------------------------------------------------------- |
+ | # ex13: Parameters, Unpacking, Variables | ||
from sys import argv | from sys import argv | ||
script, first, second, third = argv | script, first, second, third = argv | ||
行 82: | 行 121: | ||
print "Your third variable is:", third | print "Your third variable is:", third | ||
- | # ex14: Prompting and Passing | + | # ex14: Prompting and Passing |
# Nothing impresses me. | # Nothing impresses me. | ||
- | # ex15: Reading Files | + | # ------------------------------------------------------------------------- |
+ | # ex15: Reading Files | ||
print "Type the filename :" | print "Type the filename :" | ||
filename= raw_input("> | filename= raw_input("> | ||
行 91: | 行 131: | ||
print txt_again.read() | print txt_again.read() | ||
- | # ex16: Reading and Writing Files | + | # ------------------------------------------------------------------------- |
+ | # ex16: Reading and Writing Files | ||
# class file's function: | # class file's function: | ||
# close : like save | # close : like save | ||
行 103: | 行 144: | ||
my_file.write(' | my_file.write(' | ||
- | # ex17: More files | + | # ex17: More files |
# Nothing impresses me. | # Nothing impresses me. | ||
- | # ex18: Names, Variables, Code, Functions | + | # ------------------------------------------------------------------------- |
+ | # ex18: Names, Variables, Code, Functions | ||
# create a function by using the word ' | # create a function by using the word ' | ||
def my_function(*args): | def my_function(*args): | ||
行 115: | 行 157: | ||
print "arg1: %r, arg2: %r" % (arg1, arg2) | print "arg1: %r, arg2: %r" % (arg1, arg2) | ||
- | # ex19: Functions and Variables | + | # ex19: Functions and Variables |
# ex20: Functions and Files | # ex20: Functions and Files | ||
# ex21: Functions Can Return Something by " | # ex21: Functions Can Return Something by " | ||
行 123: | 行 165: | ||
# Nothing impresses me. | # Nothing impresses me. | ||
- | # ex25: Even More Practice | + | # ------------------------------------------------------------------------- |
+ | # ex25: Even More Practice | ||
# in ex25.py file: | # in ex25.py file: | ||
def break_words(stuff): | def break_words(stuff): | ||
行 134: | 行 177: | ||
help(ex25) # show help info about ex25.py | help(ex25) # show help info about ex25.py | ||
help(ex25.break_words) # show help info about function break_words in module ex25 | help(ex25.break_words) # show help info about function break_words in module ex25 | ||
- | # Typing ' | + | # Typing ' |
+ | # do your import like this: 'from ex25 import * ' which is like saying, " | ||
from ex25 import * | from ex25 import * | ||
break_words(" | break_words(" | ||
- | # ex26: Congratulations, | + | # ex26: Congratulations, |
# Nothing. | # Nothing. | ||
- | # ex27: Memorizing Logic | + | # ------------------------------------------------------------------------- |
+ | # ex27: Memorizing Logic | ||
# terms: | # terms: | ||
and, or, not, !=, ==, >=, <=, True, False | and, or, not, !=, ==, >=, <=, True, False | ||
行 148: | 行 193: | ||
# Nothing impresses me. | # Nothing impresses me. | ||
+ | # ------------------------------------------------------------------------- | ||
# ex29: What If | # ex29: What If | ||
# ex30: Else and If | # ex30: Else and If | ||
- | # ex31: Making Decisions | + | # ex31: Making Decisions |
people = 20 | people = 20 | ||
cats = 30 | cats = 30 | ||
行 160: | 行 206: | ||
print "We can't decide." | print "We can't decide." | ||
- | # ex32: Loops and Lists | + | # ------------------------------------------------------------------------- |
+ | # ex32: Loops and Lists | ||
the_count = [1, 2, 3, 4, 5] | the_count = [1, 2, 3, 4, 5] | ||
fruits = [' | fruits = [' | ||
行 183: | 行 230: | ||
print " | print " | ||
- | # ex33: While Loops | + | # ------------------------------------------------------------------------- |
+ | # ex33: While Loops | ||
i = 0 | i = 0 | ||
numbers = [] | numbers = [] | ||
行 195: | 行 243: | ||
# Nothing impresses me. | # Nothing impresses me. | ||
- | # ex35: Branches and Functions | + | # ------------------------------------------------------------------------- |
+ | # ex35: Branches and Functions | ||
from sys import exit | from sys import exit | ||
def gold_room(): | def gold_room(): | ||
行 215: | 行 264: | ||
exit(0) | exit(0) | ||
- | # ex36: Designing and Debugging | + | # ------------------------------------------------------------------------- |
+ | # ex36: Designing and Debugging | ||
# ex37: Symbol Review | # ex37: Symbol Review | ||
- | # ex38: Doing Things to Lists | + | # ex38: Doing Things to Lists |
ten_things = " | ten_things = " | ||
print "Wait there are not 10 things in that list. Let's fix that." | print "Wait there are not 10 things in that list. Let's fix that." | ||
行 235: | 行 285: | ||
print '#' | print '#' | ||
- | # ex39: Dictionaries, | + | # ------------------------------------------------------------------------- |
+ | # ex39: Dictionaries, | ||
>>> | >>> | ||
>>> | >>> | ||
行 249: | 行 300: | ||
print "%r : %r" % (key, value) | print "%r : %r" % (key, value) | ||
- | # ex40: Modules, Classes, and Objects | + | # ------------------------------------------------------------------------- |
+ | # ex40: Modules, Classes, and Objects | ||
# Modules Are Like Dictionaries | # Modules Are Like Dictionaries | ||
# Classes Are Like Modules | # Classes Are Like Modules | ||
行 285: | 行 337: | ||
super | super | ||
+ | # ------------------------------------------------------------------------- | ||
# ex43: Basic Object-Oriented Analysis and Design | # ex43: Basic Object-Oriented Analysis and Design | ||
- | # ex44: Inheritance Versus Composition | + | # ex44: Inheritance Versus Composition |
class Parent(object): | class Parent(object): | ||
def override(self): | def override(self): | ||
行 320: | 行 373: | ||
super(Child, | super(Child, | ||
| | ||
- | # ex45: You Make a Game | + | # ex45: You Make a Game |
- | | + | # Nothing impresses me. |
+ | |||
+ | # ------------------------------------------------------------------------- | ||
+ | # ex46: A Project Skeleton | ||
+ | try: | ||
+ | from setuptools import setup | ||
+ | except ImportError: | ||
+ | from distutils.core import setup | ||
+ | |||
+ | # ------------------------------------------------------------------------- | ||
+ | # ex47: Automated Testing | ||
+ | nosetests | ||
+ | from nose.tools import * | ||
+ | assert_equal | ||
+ | # Test files go in " | ||
+ | |||
+ | |||
+ | # ------------------------------------------------------------------------- | ||
+ | # ex48: Advanced User Input | ||
+ | # A tuple is nothing more than a list that you can't modify. | ||
+ | # It's created by putting data inside two " | ||
+ | first_word = (' | ||
+ | # Exceptions and Numbers | ||
+ | def convert_number(s): | ||
+ | try: | ||
+ | return int(s) | ||
+ | except ValueError: | ||
+ | | ||
+ | |||
+ | # ------------------------------------------------------------------------- | ||
+ | # ex49: Making Sentences | ||
+ | # ex50: Your First Website | ||
+ | # ex51: Getting Input from a Browser | ||
+ | # ex52: The Start Of Your Web Game | ||
+ | # Nothing impresses me. | ||
+ | |||
</ | </ | ||