python基本语法练习,python基本语法

来源:http://www.sh-fengwen.com 作者:美高梅游戏平台网站 人气:60 发布时间:2019-09-04
摘要:python_基本语法_01,python基本语法_01 离毕业工作还有几个月,本来想早点去公司实习,无奈gb学校不给放。好吧,既然这样,就学门语言。 参考与 ,我是跟着这位博客牛人的博客教程学

python_基本语法_01,python基本语法_01

离毕业工作还有几个月,本来想早点去公司实习,无奈gb学校不给放。好吧,既然这样,就学门语言。

参考与  ,我是跟着这位博客牛人的博客教程学的,具体的大家可以到这位博主的博客查看。

记得比较零碎,就将练习的小例子的代码以及注释粘了过来,主要是为了防止自己忘记,大家凑活着看吧。

#coding:utf-8
from logging import exception
from xmlrpclib import DateTime
#定义类
class Info():
    age=2
class Person(): #括号内的参数代表继承与那个对象,不代表构造方法形参
    name='hefei'
    age=25
    def sayHello(self,content): #成员函数需要包括self参数
        print content
    def __init__(self,Info):    #相当于构造方法,用来在对象创建时,初始化一些属性
        self.age=Info.age

#类的继承,新建类时括号内写被继承的父类
class American(Person):
    shengao=1.88
i=Info()
a=Person(i)

#map的赋值,python里面成为字典,无非键值对嘛,就是个map
m={'name':'hefei','age':25}  
m.setdefault('shenggao')
m['shenggao']=1.88
for i in m.values():
    print i

#文件流
f=open('test.txt','r')
content = f.readline()
f.close()
print content

#循环语句之几个好用的方法
S = 'abcdefghijk'
for i in range(0,len(S),2):      #最后一个参数代表跳几格
    print S[i]

S = 'abcdefghijk'
for (index,char) in enumerate(S): #在对list或tuple进行迭代时,枚举方法可以获得列表的索引,index
    print index
    print char

#zip,打包,对于相同长度的列表们可以进行打包,以下例为例,打包后的结果为:[(1,'a'),(2,'b'),(3,'c')]
ta=[1,2,3]
tb=['a','b','c']
zipped=zip(ta,tb)
print type(zipped),zipped

#unzip
ta1,tb1=zip(*zipped)    #*代表解包裹的意思,解包裹就是按照","拆分
print ta1,tb1,type(ta1)
#再次打包,又变回去了,不过类型变了,呵呵,设计的真好
result=zip(ta1,tb1)
print result

#循环对象,相当于迭代器,一些方法的返回值就可能是一个循环对象,for循环时,就是调用循环对象的next()方法
f=open('test.txt')  #这里的文件对象就是一个循环对象
for line in f:
    print line

#生成器:自定义迭代对象,每次迭代时,遇到yield返回,下一次迭代时,从上一次yield的地方开始迭代
def gen():
    a=1
    yield a
    a=a+1
    yield a
for i in gen():
    print i
#表推导,和自定义迭代器一样,有简短的表达式形式,表推导用来快速生成所需的列表,感觉没有多大用途。
L = []
for x in range(10):
    L.append(x**2)
print L

xl = [1,3,5]
yl = [9,12,13]
L  = [ x**2 for (x,y) in zip(xl,yl) if y > 10]
print L
#lambda函数,在面向对象的世界里,函数也是对象
func=lambda x,y:x+y
print func(1,2)
#lambda 表达式等价于常规的方法定义
def func(x,y):
    return x+y
print func(2,3)
#几个特殊的方法
#map 函数:返回一个列表,结果为本来列表经方法处理后的列表,返回结果为[3,5]
print map(lambda x:x+1, [2,4])
#reduce方法,迭代的思想,将前一个方法处理后的结果作为后一个处理的参数,返回结果为6
print reduce(lambda x,y:x+y, [1,2,3])
#异常处理
re=iter(range(5));         #使用iter方法定义一个迭代对象
try:
    for item in range(10): #迭代10次
        print re.next()
except StopIteration:
    print 'here is the end ',item
finally:
    print 'this is finaly'
#自行抛出一个异常对象,raise关键字
raise StopIteration
#动态类型,引用独立 下例中,a+2了,虽然b的引用指向a 但,b的值不变
#python中对象分为可变和不可变对象,像元组(tuple)和字符串都是不可变对象,其他的是可变对象,这点和java相同
a = 5
b = a
a = a + 2
print 'a=',a,'b=',b
#标准库中的api介绍
print DateTime()
#python深入学习内容
#上下文管理器:定义了文件对象的作用范围,在with 语句之内,虽然f没有手动关闭,但是只要在with语句块之外,对象就自动关闭,其实就是分别执行类内置函数,__enter__和__exit__方法
with open('test.txt','w') as f: 
    print f.closed
print f.closed
#可以自定义上下文管理器
class Teller(object):
    def __enter__(self):
        print 'i m come'
    def __exit__(self,fexc_type,exc_value,traceback): #这里尼玛不给提示,这里的__exit__方法需要4个参数是必须的
        print 'i m out'
with Teller() as teller: # with 语句块内一定要有语句,不然解释不通过
    print 'running..'
#函数对象,就相当于java中的内部对象
def out_fun():
    def in_fun():
        return 2
    print in_fun()
out_fun()
#闭包,以下程序运行结果为25,my——line= line_conf()返回一个函数对象,传入5,进行2*5+b的运算,使用的b为外部函数所定义的b的值
#这里的b也称为内部函数对象的环境变量,一个函数对象和他的环境变量集合在一起就叫做闭包,环境变量的取值被放在函数对象的_closure_属性中,该属性是一个元组
#闭包的优势在于减少了函数参数的设定,在"并行运算中有很大的应用"(不是很懂)
def line_conf():
    b = 15
    def line(x):
        return 2*x+b
    return line       # return a function object

b = 5
my_line = line_conf()
print(my_line(5))
print my_line.__closure__[0].cell_contents
#装饰器,就相当于java中的动态代理,修饰原有的方法,让原有的方法得到加强
#定义一个装饰器,装饰器是修饰函数的,故接收的参数也是函数对象,除此之外,装饰器还可以修饰类,代码如下
def decorator(F):
    def new_F():
        print "这是加强内容"
        return F()   #这里一定要用F(),不能用F,否则出不了结果,这里体现了闭包的特性,内部函数调用了外部的环境变量
    return new_F #返回加工后的函数对象

@decorator
def F():
    print "原来有的内容"
F()

#装饰器还可以修饰类
def decorator1(aClass):
    class newClass:
        def __init__(self, age):
            self.total_display   = 0
            self.wrapped         = aClass(age)
        def display(self):
            self.total_display += 1
            print("total display", self.total_display)
            self.wrapped.display()
    return newClass

@decorator1
class Bird:
    def __init__(self, age):
        self.age = age
    def display(self):
        print("My age is",self.age)

eagleLord = Bird(5)
for i in range(3):
    eagleLord.display()

#使用的一些小技巧
#但写有测试语句的模块被别的模块引入的时候,要想在别的模块中不运行这些测试语句,在别的模块中可以这么写,if __name__=='__main__':测试代码
def localMethod():
    print "hello"
if __name__=='__main__':
    print 'test content'

未完待续。。

 

离毕业工作还有几个月,本来想早点去公司实习,无奈gb学校不给放。好吧,既然这样,就学门语言。...

python基本语法练习,python基本语法

1、打印九九乘法表
#只打印结果
for i in range(1,10):
    for j in range(1,i+1):
        print(i*j,end=" ")
    print()

#打印算数表达式
for i in range(1,10):
    for j in range(1,i+1):
        print("{0}*{1} = {2:2}".format(j,i,i*j),end="  ")
        print()

1*1 =  1  
1*2 =  2  2*2 =  4  
1*3 =  3  2*3 =  6  3*3 =  9  
1*4 =  4  2*4 =  8  3*4 = 12  4*4 = 16  
1*5 =  5  2*5 = 10  3*5 = 15  4*5 = 20  5*5 = 25  
1*6 =  6  2*6 = 12  3*6 = 18  4*6 = 24  5*6 = 30  6*6 = 36  
1*7 =  7  2*7 = 14  3*7 = 21  4*7 = 28  5*7 = 35  6*7 = 42  7*7 = 49  
1*8 =  8  2*8 = 16  3*8 = 24  4*8 = 32  5*8 = 40  6*8 = 48  7*8 = 56  8*8 = 64  
1*9 =  9  2*9 = 18  3*9 = 27  4*9 = 36  5*9 = 45  6*9 = 54  7*9 = 63  8*9 = 72  9*9 = 81

#将打印矩阵转置一下
for i in range(1,10):
    print(" " *10*(i-1), end = " ")
    for j in range(i,10):
        print("{0}*{1} = {2:<2}".format(i,j,i*j),end="  ")
    print()

 1*1 = 1   1*2 = 2   1*3 = 3   1*4 = 4   1*5 = 5   1*6 = 6   1*7 = 7   1*8 = 8   1*9 = 9   
           2*2 = 4   2*3 = 6   2*4 = 8   2*5 = 10 2*6 = 12  2*7 = 14 2*8 = 16  2*9 = 18  
                     3*3 = 9   3*4 = 12  3*5 = 15  3*6 = 18  3*7 = 21  3*8 = 24  3*9 = 27  
                               4*4 = 16  4*5 = 20  4*6 = 24  4*7 = 28  4*8 = 32  4*9 = 36  
                                         5*5 = 25  5*6 = 30  5*7 = 35  5*8 = 40  5*9 = 45  
                                                   6*6 = 36  6*7 = 42  6*8 = 48  6*9 = 54  
                                                             7*7 = 49  7*8 = 56  7*9 = 63  
                                                                       8*8 = 64  8*9 = 72  
                                                                                 9*9 = 81  

2、打印一个菱形(行数为奇数行)

for i in range(-3,4):
    prespace=(-i if i<0 else i)
    print(" "*prespace + '*'*(7-2*prespace))

   *
  ***
 *****
*******
 *****
  ***
   *



#变形之打印一道闪电
while True:
    line_max = int(input("please input a odd number: "))
    if line_max % 2:
        break
range_num = (line_max + 1)//2

for i in range(-range_num+1,range_num):
    if i == 0:
        print('*'*line_max)
    elif i > 0:
        print(' '*(range_num-1) + "*"*(range_num-i))
    else:
        print(' '*(-i) + '*'*(range_num+i))

   *
  **
 ***
*******
   ***
   **
   *

#变形之打印掏空的菱形
for i in range(-4,5):
    if i == -4 or i == 4:
        print('*'*9)
    else:
        prespace=(-i+1 if i<0 else i+1)
        print("*"*prespace + ' '*(9-2*prespace) + "*"*prespace)

*********
**** ****
***   ***
**     **
*       *
**     **
***   ***
**** **** 
*********

3、打印100以内的斐波那契数列
f0, f1 = 0, 1
while f1 <= 100:
    print(f1, end = " ")
    t = f1
    f1 = t + f0
    f0 = t

暂时还不理解的写法:
f0, f1 = 0, 1
while f1 <= 100:
    print(f1)
    f0, f1 = f1, f0 + f1 #python对这样的赋值怎样处理

4、求斐波那契数列第101项
f0, f1 = 0, 1
for i in range(3,102):
    t = f1
    f1 = t + f0
    f0 = t
else:
    print(f1)

 

1、打印九九乘法表#只打印结果for i in range(1,10): for j in range(1,i+1): print(i*j,end=" ") print()#打印算数表达式...

本文由美高梅游戏平台网站发布于美高梅游戏平台网站,转载请注明出处:python基本语法练习,python基本语法

关键词:

最火资讯