python 学习

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#参数传递及函数调用范例
def say(name='python',time=3):
i=1
while i<=time:
print(name,end=' ')
i+=1
print()

say() #两个参数都使用默认值
say('hello') #第一个参数传入函数,第二个默认值
say(5) #第一个参数传入函数,第二个默认值
say('hello',5) #不用默认值

#输出两位同学成绩及平均成绩,保存为funVarArgs.py
def garde(name,num,*scores):
print(name+":",end='')
print("{}门成绩为:".format(num),end='')
ave=0
for var in scores:
print(var,end=' ')
ave=ave+var
ave=ave/num
print("\n 平均成绩为{:.2f}".format(ave))
garde("张",3,88,90,98)
garde("黄",4,92,96,95,68)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#局部变量作用域范例
#使用global声明全局变量
def fun(scale):
global radius #global声明全局变量
radius =radius* scale
area=3.14159* radius ** 2
print("fun:半径是%d的圆的面积是"%radius,area)
radius=10
area=3.14159* radius ** 2
print("main:半径是%d的面积是"%radius,area)
fun(0.5)

#递归函数,计算阶乘
def fact(n):
if n==1:
return 1
return n*fact(n-1)
n=eval(input("请输入要求的阶乘的数:"))
print("%d 的阶乘是"%n.fact(n))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#python标准库初始学习
"""
import 模块名
from 模块名 import */函数名
"""
#datetime模块
#有两个常量datetime.MINYEAR,datetime>MAXYEAR分别表示最大最小年份,1~9999
#datetime.date 日期
#datetime.time 时间
#datetime.datatime 日期时间
#datetime.timedelta 时间间隔
#datetime.tzinfo 时区
#导入方法,例:datetime.datetime
from datetime import datetime
today=datetime.now()
print(today)

#python共有68个内置函数,不用引用直接用

#python中函数对应面向过程,对象对应面向对象
#包(package) = 各个模块 + _init_.py

#二项式的计算
from combinatorial import * #bino.py
def term(a,b,n,k):
t=comb(n,k)*a**(n-k)*b**k
return t
def sum(a,b,n):
item=0
for k in range(n+1):
print(k)
item=item+term(a,b,n,k)
return item
if _name_=='_main_': #模块是被自己运行时_mane_等于_main_
a,b,n=map(int,input("请输入二项式系数a,b及项数n:").split(" "))
#combinatorial.py
def fac(N): #阶乘函数
term=1
for i in range(1,N+1):
term=term*i
return term
def comd(M,N) #求组合数
a=fac(M)
b=fac(N)
c=fac(M-N)
return (a/b/c)

#查看路径
"""import sys
sys.path """
#增加模块所在绝对路径
#sys.path.append("d:\1")

#dir()
#返回模块定义对象的名称
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#数据结构
#序列结构: 列表list [元素可变] 元组tuple (元素不可变)
#数据结构: 字符串str 字典dict 集合set

#list
#6种内建序列:列表,元组,字符串,Unicode字符串,buffer对象,xrange对象
l=['h','o','l','l','e',',','w','o','r','l','d']
list("holle,world") #两种方法
#列表赋值
l[1]='o' #替换
l[11:]=['!','!'] #添加
l[5:5]=['your'] #插入
l[0:5]=[] #删除
#列表函数
del l[0:5] #删除
l.append('!') #追加一个元素
name1=['ha','ha','ha']
l.extend(name1) #追加多个元素
l.insert(5,'your') #插入
l.index('l') #索引(第一个)
l.count('l') #出现次数
l.pop() #删除,默认最后一个
l.remove('l') #索引删除(第一个)
l.reverse() #逆置
l.sort() #排列(小到大)
len(l)
max(l)
min(l)


#tuple
tuple('a')
test=('a','b',['a','b'])
print(test)
test[2][0]='A'
print(test)
#单个元组值后必须加一个逗号,例(777,)
#元组的索引访问与列表类似,但支持反向读取tuple[-1]
#可以用多个元组创建新元组tuple3=tuple1+tuple2
'''del test #删除元组
len(test)
max(test)
min(test)
'''
#string
#[]可截取字符串
#切片操作
v1='print(777)'
v2='niu bi'
v1+=v2[0:3]
#>>>'print(777) niu'

#格式化字符串 与c语言差不多
#'%010.2f'%3.1415926 用0填充
#新特性:
# 在字符串前加f,才可以直接将变量放入大括号内
#字符串操作方法
'''
s.capitalize() #首大余小
s1.find(s2,beg,end) #检测子串,没有返回-1
序列.join(s2) #链接
字符串.split(s2) #分割
s.replace(old,new) #以旧换新
s.strip() #去除字符串两端的空格
s.lower() s.upper() #大小写转换
'''


#dict
d={'a':1,'b':2,'c':3}
test=[('a',1),('b',2)]
e=dict(test)
#字典的操作
e['c']=3
e.update({'d':4}) #增加
del e['d']
e.pop('c') #删除
#查询用查询列表元素的索引方式
#判断key是否存在
#1.in运算符
'e' in e
#2.get()方法 没有时返回NULL或指定
e.get('e') #e.get('e',-1)返回-1
f=e.copy() #复制一个新的,改值values都变
f.clear() #清除内容
f=dict.fromkeys(['3','2','1'],'None') #建立新字典{'3':None,'2':None,'1':None}
f.items() #将字典以列表方式返回
f.keys() #将字典键以列表方式返回
f.values() #将字典值以列表方式返回
#操作功能
'''
len(dict)#长度
str(dict)#打印
dict.clear()
dict.copy()
dict.fromkeys()
dict.get()
dict.items()
dict.keys()
dict.pop()
dict.popitem()
dict.setdefault()
dict.update()
dict.values()
'''
#dict.mor()不知道是什么东西


#set集合
jh=set('123') #元素不能重复
jh.add('4') #添加(整体)
jh.update('5') #添加(拆分)
jh.remove('1') #删除

j1=set('12345')
j2=set('34567')
j1 & j2 #交集
j1 | j2 #并集
j1 - j2 #差集
'''
len(set)
set.add()
set.clear()
set.copy()
set.difference()
set.difference_update()
set.discard()
set.intersection()
set.intersection_update()
set.isdisjoint()
set.issubset()
set.issuperset()
set.pop()
set.remove()
set.symmetric_difference()
set.symmetric_difference_update()
set.union()
set.update()
'''