Python 语法小例子

来源:互联网 发布:centos官网价格 编辑:程序博客网 时间:2024/06/07 06:54

1、print('hello world')

2、python并没有long型,int型可以是任意大小的整数

3、string类型,单引号和双引号没区别。三引号表示多行:

'''This is a multi-line string. This is the first line.This is the second line."What's your name?," I asked.He said "Bond, James Bond."'''
4、python并没有单独的char类型。

5、关于fromat()函数

一般这么写:

age = 20name = 'Swaroop'print('{0} was {1} years old when he wrote this book'.format(name, age))print('Why is {0} playing with that python?'.format(name))
或者:

print('{} was {} years old when he wrote this book'.format(name, age))print('Why is {} playing with that python?'.format(name))
一般不这么写:

name + ' is ' + str(age) + ' years old'
其他用法:

# decimal (.) precision of 3 for float '0.33333'print('{0:.5f}'.format(1.0/3))# fill with underscores (_) with the text centered# (^) to 11 width '___hello___'print('{0:_^11}'.format('hello'))
6、print()是自动换行的,若不自动换行,需要显示的如下使用print()函数:

print('a', end='')print('b', end='')
注意!python 3版本以下不支持该print end用法,需要直接在首行添加:

from __future__ import print_function
7、识别转义序列用\识别

'What\'s your name?'

8、关于physical line和logical line. physical line是编辑器的一行,  logical line是python编译器所识别的一行。

如果在一行里写多个语句,用;隔开,但是一般在python代码中最好不要出现分号,所以我们不建议这么写代码:

i = 5;print(i);
或:

i = 5; print(i);i = 5; print(i)

最好,一个语句一行:

i = 5print(i)

9、python中,从不用{}来对代码进行分组,只用缩进!python中标准的缩进是4个空格键

10、if语句:

number = 23guess = int(input('Enter an integer : '))if guess == number:    # New block starts here    print('Congratulations, you guessed it.')    print('(but you do not win any prizes!)')    # New block ends hereelif guess < number:    # Another block    print('No, it is a little higher than that')    # You can do whatever you want in a block ...else:    print('No, it is a little lower than that')    # you must have guessed > number to reach hereprint('Done')# This last statement is always executed,# after the if statement is executed.
11、while语句(不同于其他编程语言,python的while语句有else子句)

number = 23running = Truewhile running:    guess = int(input('Enter an integer : '))    if guess == number:        print('Congratulations, you guessed it.')        # this causes the while loop to stop        running = False    elif guess < number:        print('No, it is a little higher than that.')    else:        print('No, it is a little lower than that.')else:    print('The while loop is over.')    # Do anything else you want to do hereprint('Done')
12、for语句(类似于C++的   for(int i = 0; i < 5; i++)   )

for i in range(1, 5):    print(i)else:    print('The for loop is over')
13、break语句和continue语句

break语句:是跳出整个for或者while循环

continue语句:是告诉程序跳出当前循环,直接执行下一循环

while True:    s = input('Enter something : ')    if s == 'quit':        break    if len(s) < 3:        print('Too small')        continue    print('Input is of sufficient length')    # Do other kinds of processing here...
14、局部变量

x = 50def func(x):    print('x is', x)    x = 2    print('Changed local x to', x)func(x)print('x is still', x)  #x的值依然是50
15、全局变量

x = 50def func():    global x  #是全局变量    print('x is', x)    x = 2    print('Changed global x to', x)func()print('Value of x is', x)  #x的值变为2
16、不定参数的函数:*param是指相应的参数为tuple; **param是指相应的参数为dictionary

def total(a=5, *numbers, **phonebook):    print('a', a)    #iterate through all the items in tuple    for single_item in numbers:        print('single_item', single_item)    #iterate through all the items in dictionary        for first_part, second_part in phonebook.items():        print(first_part,second_part)print(total(10,1,2,3,Jack=1123,John=2231,Inge=1560))
输出:

a 10single_item 1single_item 2single_item 3Inge 1560John 2231Jack 1123None
17、定位当前工作路径:

import osprint(os.getcwd())
18、关于import modules

一般不建议from ... import(使用的时候可以省去moduel名,所以可能会造成冲突),使用import ...更妥(不可省)

每个python module都有一个__name__属性,可以通过该属性判断,该moduel是自己在运行还是正在被import

if __name__ == '__main__':    print('This program is being run by itself')else:    print('I am being imported from another module')
19、创建自己的moduel

可以这么说,每个python程序都可以看成是一个module。e.g.

mymodule.py  (该.py文件 为module)

def say_hi():    print('Hi, this is mymodule speaking.')__version__ = '0.1'
通过import使用:

import mymodulemymodule.say_hi()print('Version', mymodule.__version__)
通过from...import..使用:

from mymodule import say_hi, __version__say_hi()print('Version', __version__)
20、dir(module)是该module的所有属性查找函数

21、python数据结构有:List, Tuple, Dictionary, Set, Sequence, Reference. 具体用法将单独做笔记

22、类class,首先看一个简单的class的例子,了解python中的类怎么使用

class Person:    def __init__(self, name):        self.name = name    def say_hi(self):        print('Hello, my name is', self.name)p = Person('Swaroop')p.say_hi()
可以和C++这么类比: self~this ,  __init__~构造函数。但是并不显示的调用__inti__函数,而是通过类名来实例化,如:p = Person('Swaron')

下面详细看重点:class variable, object variable, classmethod. 还是先看例子:

class Robot:    """Represents a robot, with a name."""    # A class variable, counting the number of robots    population = 0   #类变量,通过Robot.population来访问,并不是通过self.population来访问    def __init__(self, name):        """Initializes the data."""        self.name = name # name是object 变量,通过self.name访问        print("(Initializing {})".format(self.name))        # When this person is created, the robot        # adds to the population        Robot.population += 1    def die(self):        """I am dying."""        print("{} is being destroyed!".format(self.name))        Robot.population -= 1        if Robot.population == 0:            print("{} was the last one.".format(self.name))        else:            print("There are still {:d} robots working.".format(                Robot.population))    def say_hi(self):        """Greeting by the robot.        Yeah, they can do that."""        print("Greetings, my masters call me {}.".format(self.name))    @classmethod    def how_many(cls):  #类似于C++ 的静态函数,类的所有实例对象共享        """Prints the current population."""        print("We have {:d} robots.".format(cls.population))
需要注意与C++类不同的是,python类(包括类成员和类方法)都是public的,并且所有的类方法都是virtual (继承的时候可以重载……)

既然提到了类的继承,看下面一个继承的例子:

class SchoolMember:    '''Represents any school member.'''    def __init__(self, name, age):        self.name = name        self.age = age        print('(Initialized SchoolMember: {})'.format(self.name))    def tell(self):        '''Tell my details.'''        print('Name:"{}" Age:"{}"'.format(self.name, self.age), end=" ")class Teacher(SchoolMember):    '''Represents a teacher.'''    def __init__(self, name, age, salary):        SchoolMember.__init__(self, name, age)        self.salary = salary        print('(Initialized Teacher: {})'.format(self.name))    def tell(self):        SchoolMember.tell(self)        print('Salary: "{:d}"'.format(self.salary))class Student(SchoolMember):    '''Represents a student.'''    def __init__(self, name, age, marks):        SchoolMember.__init__(self, name, age)        self.marks = marks        print('(Initialized Student: {})'.format(self.name))    def tell(self):        SchoolMember.tell(self)        print('Marks: "{:d}"'.format(self.marks))t = Teacher('Mrs. Shrividya', 40, 30000)s = Student('Swaroop', 25, 75)# prints a blank lineprint()members = [t, s]for member in members:    # Works for both Teachers and Students    member.tell()
注意和C++类的继承的区别:python类的继承并不默认继承基类的所有,需要显示的调用基类的__init__等之类的函数。

这里的tell()函数类似于接口,但又不全是接口,可以在派生类中复写。然后统一访问

23、关于输入输出

输入:

something = input("Enter text: ")
输出:直接就是print函数

关于文件的读写:(读写的mode))

# Open for 'w'ritingf = open('poem.txt', 'w')# Write text to filef.write(poem)# Close the filef.close()
还有一种pickle方法来实现对象的持续存储

import pickle# The name of the file where we will store the objectshoplistfile = 'shoplist.data'# The list of things to buyshoplist = ['apple', 'mango', 'carrot']# Write to the filef = open(shoplistfile, 'wb')# Dump the object to a filepickle.dump(shoplist, f)f.close()# Destroy the shoplist variabledel shoplist# Read back from the storagef = open(shoplistfile, 'rb')# Load the object from the filestoredlist = pickle.load(f)print(storedlist)
先open待存文件,然后调用pickle模块中的dump方法,即完成一次存储。

以utf-8格式读写:

# encoding=utf-8import iof = io.open("abc.txt", "wt", encoding="utf-8")f.write(u"Imagine non-English language here")f.close()text = io.open("abc.txt", encoding="utf-8").read()print(text)
其中,python是通过字母'u'来读取non-English语言。

24、python关于异常的处理

首先,try...except...else...:

try:    text = input('Enter something --> ')except EOFError:    print('Why did you do an EOF on me?')except KeyboardInterrupt:    print('You cancelled the operation.')else: #执行到这,代表没遇到异常    print('You entered {}'.format(text))
还有,try...finally
import sysimport timef = Nonetry:    f = open("poem.txt")    # Our usual file-reading idiom    while True:        line = f.readline()        if len(line) == 0:            break        print(line, end='')        sys.stdout.flush()        print("Press ctrl+c now")        # To make sure it runs for a while        time.sleep(2)except IOError:    print("Could not find file poem.txt")except KeyboardInterrupt:    print("!! You cancelled the reading from the file.")finally: #肯定被执行    if f:        f.close()    print("(Cleaning up: Closed the file)")
最后,with语句:

with open("poem.txt") as f:    for line in f:        print(line, end='')
但是,虽然语法简单,但是并没有捕捉到error。




































原创粉丝点击