Python学习笔记-DAY3

函数

调用函数

定义函数

函数的参数

切片

迭代

列表生成表达式

数据库的连接

 

 

 

函数

# -*- coding: utf-8 -*-
import math
def area(r):
    area=r**
2*math.pi
   
return area
r=
input(u'请输入圆的半径')
print "The circle of area is %d"%area(r)

调用函数

 

a=abs(-1)

print a

print cmp(1,2)

print cmp(2,1)

print cmp(2,2)

b=int('123')

print b

c=str(123)

print c

d=unicode(100)

print d

e=bool('')

print e

f=int(float('12.34'))

print f

定义函数

空函数:pass语句用来做占位符,先使程序可以运行起来

def nop():

    pass
if age>=0:

    pass

定义取绝对值函数

# -*- coding: utf-8 -*-

def my_abs(x):

    if not isinstance(x,(int ,float)):

        raise TypeError('bad operand type')

    if x>=0:

        return x

    else:

        return -x

x=input(u'请输入要取绝对值的数')

print my_abs(x)

定义获取坐标的函数(坐标中心在左上角)

import math

def move(x,y,step,angle=0):

    nx=x+step*math.cos(angle)

    ny=y-step*math.sin(angle)

    return nx,ny

x,y=move(100,100,80,math.pi/6)

print x,y

r=move(100,100,80,math.pi/6)

print r

函数的参数

def power(x,n=2)(默认参数n=2)

    s=1

    while n>0:

        n=n-1

        s=s*x

    return s

a=power(5,5)

print a

b=power(5)

print b

默认参数必须指向不变对象!因为不变对象一旦创建,对象内部的数据就不能修改,这样就减少了由于修改数据导致的错误。此外,由于对象不变,多任务环境下同时读取对象不需要加锁,同时读一点问题都没有。我们在编写程序时,如果可以设计一个不变对象,那就尽量设计成不变对象。

def add_end(L=None)(str 与None是不变对象)

    if L is None:

        L=[]

    L.append('END')

    return L

print add_end([1,2,3])

print add_end()

可变参数(传入的参数个数是可变的)

def cacl(*numbers):

    sum=0

    for n in numbers:

        sum=sum+n*n

    return sum

print cacl(1,2,3,4)

a=[1,2,3,4,5]

print cacl(*a)

关键字参数

def person(name,age,**kw):

    print 'name',name,'age',age,'other',kw

person('M',30)

person('B',12,city='beijing')

person('C',34,gender='M',job='Engineer')

kw={'city':'beijing','job':'Engineer'}

person('D',50,**kw)

参数组合(Python中定义函数,可以用必选参数、默认参数、可变参数和关键字参数,这4种参数都可以一起使用,或者只用其中某些,但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数和关键字参数。

def person(name,age,gender='M',*args,**kw): 定义一个函数,包含上述4种参数

    print 'name=',name,'age=',age,'gender=',gender,'args=',args,'kw=',kw

person('Jack',20,'W',1,2,4,x=99) 函数调用的时候,Python解释器自动按照参数位置和参数名把对应的参数传进去。

args=(1,2,3,4)

kw={'x':99}

person(*args,**kw) 通过一个tupledict,你也可以调用该函数

对于任意函数,都可以通过类似func(*args, **kw)的形式调用它,无论它的参数是如何定义的

 

*args是可变参数,args接收的是一个tuple

**kw是关键字参数,kw接收的是一个dict

L = []
L =
range(1,100,2)
print L

 

切片

L=range(100)
print L
print L[:10]前10个数
print L[-10:]后10个数          L[-50:55]等价于L[50:55]  L[45:-35]等价于L[45:65]

print L[10:20]前11-20的数
print L[:10:2]前10个数,每两个取一
print L[::5]所有数,每5个取一
print L[:]
T=(
1,2,3,4,5,6,7,8,9)tuple与str相同
print T[:3]
S=
'ABCDEFG'
print S[:3]

迭代

d={'a':1,'b':2,'c':3}
for value in d.itervalues():
   
print value
for key in d:
   
print key
for ch in 'ABC':
   
print ch
from collections import Iterable
print isinstance('abc',Iterable)
print isinstance(123,Iterable)
print isinstance([1,2,3],Iterable)
print isinstance((1,2,3),Iterable)
for i,value in enumerate(['A','B','C']):
   
print i,value
for x,y in [(1,1),(2,2),(3,3)]:
   
print x,y

 

列表生成表达式

练习实例

字符串日期转换为易读的日期格式。(pip install python-dateutil
  1.  

#!/usr/bin/python
# -*- coding: UTF-8 -*-


from dateutil import parser
dt = parser.parse(
"Aug 28 2015 12:00AM")
print dt

数据库的连接

Username postgers

Password  postgers

 

#!/usr/bin/env python
# -*- coding: utf-8 -*-


import psycopg2
username=
raw_input(u'请输入用户名')
password=
raw_input(u'请输入密码')
key=
0
# 数据库连接参数
conn = psycopg2.connect(database="test", user="postgres", password="postgres", host="127.0.0.1", port="5432")
cur = conn.cursor()
cur.execute(
"SELECT * FROM test;")
rows = cur.fetchall()       
# all rows in table
print(rows)
for i in rows:
   
if username==i[1] and password==i[2]:
       
print '登陆成功'
       
key=1
       
break
if
key==0:
   
print '登陆失败'
conn.commit()
cur.close()
conn.close()

 

猜你喜欢

转载自blog.csdn.net/yige__cxy/article/details/81169466