public:it:python

Python

  • 快速开一个静态http服务: 进入文件夹, 然后 python -m SimpleHTTPServer 80
  • In Terminal, type pydoc raw_input Read what it says about “raw_input”. If you're on Windows try python -m pydoc raw_input instead. Get out of pydoc by typing q to quit.
  • python为动态语言,与js类似, list,dict等object的=赋值在默认为引用. 如果不需要引用, 那么拷贝list用list2 = list1[:],之后list2的改动便与list1无关.
    • 拼接字符串的速度, 直接 + 快于 join() 快于 += 一项项加.
    • 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” 但是现代解释器基本都优化过, while TRUE 还更有可读性
    • Faster Start-Up: Import Python Modules Smartly
  • Learning more:
    • Learn Ruby The Hard Way You will learn even more about programming as you learn more programming languages, so try learning Ruby too.
    • The Django Tutorial and try to build a web application with the Django Web Framewor.
    • SciPy if you're into science, math, and engineering and also Dexy for when you want to write awesome papers that incorporate SciPy or any code really.
    • PyGame and see if you can make a game with graphics and sound.
    • Pandas for doing data manipulation and analysis.
    • Natural Language Tool Kit for analyzing written text and writing things like spam filters and chat bots.
    • Requests to learn the client side of HTTP and the web.
    • SimpleCV to play with making your computer see things in the real world.
    • ScraPy and try scraping some web sites to get information off them.
    • Panda3D for doing 3D graphic and games.
    • Kivy for doing user interfaces on desktops and mobile platforms.
    • SciKit-Learn for machine learning applications.
    • Ren'Py for doing interactive fiction games, similar to what you've built in this book but with pictures.
  • Notes:
    # -------------------------------------------------------------------------
    # ex1: Print
    # -*- coding: utf-8 -*-
    print "I'd much rather you 'not'."
    print 'I "said" do not touch this.'
    print "世界,你好"
    # on terminal, run ex1.py
    python ex1.py
     
    # -------------------------------------------------------------------------
    # ex2: Common
    # This is a common
    print "common" #This is a common too.
     
    # -------------------------------------------------------------------------
    # ex3: Numbers and Math
    # + - / * % < > <= >=
    # more: **
    print "Result is ", 2*2-3/1, "+", 7%6,"=", 2, "is", 2>1, 2**8
     
    # -------------------------------------------------------------------------
    # ex4: Variables And Names
    cars = 100
    space_in_a_car = 4.0
     
    # -------------------------------------------------------------------------
    # ex5: More Variables and Printing
    my_name = 'lucy'
    my_age = 16
    print "My name is %s." % my_name
    print "My name is %s, i am %d old." % ( my_name, my_age )
     
    # -------------------------------------------------------------------------
    # ex6: Strings and Text
    print "My name is: %r" % "lucy"  # Print "My name is:'lucy'".
    print "My name is: '%s'" % "lucy"  # Print the same.
    my_name = "My name is: %r"
    print my_name % 'lucy' # Print the same.
     
    # -------------------------------------------------------------------------
    # ex7: More Printing
    print "a" + "b" + "c" * 5 # Print "abccccc"
     
    # -------------------------------------------------------------------------
    # ex8: Printing, Printing
    formatter = "%r %r %r %r"
    print formatter % (1, 2, 3, 4)
    print formatter % ("one", "two", "three", "four")
    print formatter % (True, False, False, True)
    print formatter % (formatter, formatter, formatter, formatter)
     
    # -------------------------------------------------------------------------
    # ex9: Printing, Printing, Printing
    # Here's some new strange stuff, remember type it exactly.
    days = "Mon Tue Wed Thu Fri Sat Sun"
    months = "Jan\nFeb\nMar\nApr\nMay\nJun\nJul\nAug"
    print "Here are the days: ", days
    print "Here are the months: ", months
    print """
    There's something going on here.
    With the three double-quotes.
    We'll be able to type as much as we like.
    Even 4 lines if we want, or 5, or 6.
    """
    # -------------------------------------------------------------------------
    # ex10
    print "\t \\ \" '\"' "
     
    # -------------------------------------------------------------------------
    # ex11: Asking Questions
    print "How old are you?", # We put a "," (comma) at the end of each print line. This is 
    #so print doesn't end the line with a newline character and go to the next line.
    age = raw_input()
    print "So, you're %r old" % age
     
    # -------------------------------------------------------------------------
    # ex12: Prompting People
    age = raw_input("How old are you ?")
     
    # -------------------------------------------------------------------------
    # ex13: Parameters, Unpacking, Variables
    from sys import argv
    script, first, second, third = argv
    print "The script is called:", script
    print "Your first variable is:", first
    print "Your second variable is:", second
    print "Your third variable is:", third
     
    # ex14: Prompting and Passing
    # Nothing impresses me.
     
    # -------------------------------------------------------------------------
    # ex15: Reading Files
    print "Type the filename :"
    filename= raw_input("> ")
    txt= open(filename)
    print txt_again.read()
     
    # -------------------------------------------------------------------------
    # ex16: Reading and Writing Files
    # class file's function:
    # close : like save
    # read: 
    # seek:
    # readline -- Reads just one line of a text file.
    # truncate -- Empties the file. Watch out if you care about the file.
    # write('stuff')
    # writeline
    my_file.open('tmp.txt', 'w')
    my_file.write('first line \n')
     
    # ex17: More files
    # Nothing impresses me.
     
    # -------------------------------------------------------------------------
    # ex18: Names, Variables, Code, Functions
    # create a function by using the word 'def'
    def my_function(*args):
        arg1,arg2=args
        print "arg1:%r, arg2:%r" % (arg1, arg2)
    #or
    def print_two_again(arg1, arg2):
        print "arg1: %r, arg2: %r" % (arg1, arg2)
     
    # ex19: Functions and Variables 
    # ex20: Functions and Files
    # ex21: Functions Can Return Something by "return"
    # ex22: What Do You Know So Far?
    # ex23: Read Some Code
    # ex24: More Practice
    # Nothing impresses me.
     
    # -------------------------------------------------------------------------
    # ex25: Even More Practice
    # in ex25.py file:
    def break_words(stuff):
        """This function will break up words for us."""
        words = stuff.split(' ')
        return words
    # usage ex25.py in Terminal:
    import ex25
    ex25.break_words("Hello world") # call function 'break_words' in ex25.py
    help(ex25) # show help info about ex25.py
    help(ex25.break_words) # show help info about function break_words in module ex25
    # Typing 'ex25' is annoying. A shortcut is to 
    # do your import like this: 'from ex25 import * ' which is like saying, "Import everything from ex25."
    from ex25 import *
    break_words("Hello world")
     
    # ex26: Congratulations, Take a Test!
    # Nothing.
     
    # -------------------------------------------------------------------------
    # ex27: Memorizing Logic
    # terms:
    and, or, not, !=, ==, >=, <=, True, False
     
    # ex28: Boolean Practice
    # Nothing impresses me.
     
    # -------------------------------------------------------------------------
    # ex29: What If
    # ex30: Else and If
    # ex31: Making Decisions
    people = 20
    cats = 30
    if cars > people:
        print "We should take the cars."
    elif cars < people:
        print "We should not take the cars."
    else:
        print "We can't decide."
     
    # -------------------------------------------------------------------------
    # ex32: Loops and Lists
    the_count = [1, 2, 3, 4, 5]
    fruits = ['apples', 'oranges', 'pears', 'apricots']
    change = [1, 'pennies', 2, 'dimes', 3, 'quarters']
    # this first kind of for-loop goes through a list
    for number in the_count:
        print "This is count %d" % number
    for fruit in fruits:
        print "A fruit of type: %s" % fruit
    # also we can go through mixed lists too
    # notice we have to use %r since we don't know what's in it
    for i in change:
        print "I got %r" % i
    # we can also build lists, first start with an empty one
    elements = []
    # then use the range function to do 0 to 5 counts
    for i in range(0, 6):
        print "Adding %d to the list." % i
        elements.append(i)
    # now we can print them out too
    for i in elements:
        print "Element was: %d" % i
     
    # -------------------------------------------------------------------------
    # ex33: While Loops
    i = 0
    numbers = []
    while i < 6:
        numbers.append(i)
        i += 1;
    for num in numbers:
        print num
     
    # ex34: Accessing Elements of Lists
    # Nothing impresses me.
     
    # -------------------------------------------------------------------------
    # ex35: Branches and Functions
    from sys import exit
    def gold_room():
        print "This room is full of gold.  How much do you take?"
        choice = raw_input("> ")
        if "0" in choice or "1" in choice:
            how_much = int(choice)
        else:
            dead("Man, learn to type a number.")
     
        if how_much < 50:
            print "Nice, you're not greedy, you win!"
            exit(0)
        else:
            dead("You greedy bastard!")
     
    def dead(why):
        print why, "Good job!"
        exit(0)
     
    # -------------------------------------------------------------------------
    # ex36: Designing and Debugging
    # ex37: Symbol Review
    # ex38: Doing Things to Lists
    ten_things = "Apples Oranges Crows Telephone Light Sugar"
    print "Wait there are not 10 things in that list. Let's fix that."
    stuff = ten_things.split(' ')
    more_stuff = ["Day", "Night", "Song", "Frisbee", "Corn", "Banana", "Girl", "Boy"]
    while len(stuff) != 10:
        next_one = more_stuff.pop()
        print "Adding: ", next_one
        stuff.append(next_one)
        print "There are %d items now." % len(stuff)
    print "There we go: ", stuff
    print "Let's do some things with stuff."
    print stuff[1]
    print stuff[-1] # whoa! fancy
    print stuff.pop()
    print ' '.join(stuff) # what? cool!
    print '#'.join(stuff[3:5]) # super stellar!
     
    # -------------------------------------------------------------------------
    # ex39: Dictionaries, Oh Lovely Dictionaries
    >>> stuff = {'name': 'lucy', 'age': 16}
    >>> print stuff['name']
    lucy
    >>> stuff[1] = "Wow"
    >>> stuff
    {1:'Wow', 'age':16, 'name':'lucy'}
    >>> del stuff['age']
    >>> stuff
    {1:'Wow', 'name':'lucy'}
    # 
    for key, value in stuff.items():
        print "%r : %r" % (key, value)
     
    # -------------------------------------------------------------------------
    # ex40: Modules, Classes, and Objects
    # Modules Are Like Dictionaries
    # Classes Are Like Modules
    # Objects are Like Import
    # Getting Things from Things
    # I now have three ways to get things from things:
    ## dict style
    mystuff['apples']
    ## module style
    mystuff.apples()
    print mystuff.tangerine
    ## class style
    thing = MyStuff()
    thing.apples()
    print thing.tangerine
     
    # A First Class Example:
    class Song(object):
        def __init__(self, lyrics):
            self.lyrics = lyrics
        def sing_me_a_song(self):
            for line in self.lyrics:
                print line
     
    happy_bday = Song(["Happy birthday to you",
                       "I don't want to get sued",
                       "So I'll stop right there"])
    bulls_on_parade = Song(["They rally around tha family",
                            "With pockets full of shells"])
    happy_bday.sing_me_a_song()
    bulls_on_parade.sing_me_a_song()
     
    # ex41: Learning To Speak Object Oriented
    # ex42: Is-A, Has-A, Objects, and Classes
    super
     
    # -------------------------------------------------------------------------
    # ex43: Basic Object-Oriented Analysis and Design
    # ex44: Inheritance Versus Composition
    class Parent(object):
        def override(self):
            print "PARENT override()"
        def implicit(self):
            print "PARENT implicit()"
        def altered(self):
            print "PARENT altered()"
    class Child(Parent):
        def override(self):
            print "CHILD override()"
        def altered(self):
            print "CHILD, BEFORE PARENT altered()"
            super(Child, self).altered()
            print "CHILD, AFTER PARENT altered()"
     
    dad = Parent()
    son = Child()
    dad.implicit()
    son.implicit()
    dad.override()
    son.override()
    dad.altered()
    son.altered()
     
    # multiple inheritance
    class SuperFun(Child, BadStuff):
        pass
    # Using super() with __init__
    class Child(Parent):
        def __init__(self, stuff):
            self.stuff = stuff
            super(Child, self).__init__()
     
    # 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 "tests/" and are named "BLAH_tests.py" otherwise "nosetests" won't run them.   
     
     
    # -------------------------------------------------------------------------
    # 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 "("")" with a comma, like a list:
    first_word = ('verb', 'go')
    # Exceptions and Numbers
    def convert_number(s):
        try:
            return int(s)
        except ValueError:
            return None
     
    # -------------------------------------------------------------------------
    # ex49: Making Sentences
    # ex50: Your First Website
    # ex51: Getting Input from a Browser
    # ex52: The Start Of Your Web Game
    # Nothing impresses me.
  • public/it/python.txt
  • 最后更改: 2024/01/15 15:33
  • oakfire