全局变量当局部变量使用
用global声明一下
num = 1
def a():
global num
num +=1
print(num)
if num <3:
a()
a()
if name == ‘main’
if __name__ == '__main__'
在这个方法下面写的程序只会运行这个py 文件写的方法属性等,
为了防止其他模块(不同的模块就是不同的Py文件,不同的模块通过import py文件名 来引用)有相同的方法等不想调用但被调用
类的强化训练
1.创建一个由有序数值对(x, y) 组成的 Point 类,它代表某个点的 X 坐标和 Y 坐标。X 坐标和 Y 坐标在实例化时被传递给构造器,如果没有给出它们的值,则默认为坐标的原点。
class Point(object):
def __init__(self,x = 0,y = 0):
self.x = x
self.y = y
print ('(%d,%d)'%(self.x,self.y))
p1 = Point()
p2 = Point(1,2)
2.要求: 可以指定一批生成的个数,可以指定数值的范围,可以调整每批生成数字的个数
from random import randint
class Num:
def __init__(self,n,start,finish):
self.n=n #n=指定一批生成的个数
self.start=start
self.finish=finish #start ,finish=指定数值的范围
def cal(self):
list1=[]
for i in range(self.n):
a=randint(self.start,self.finish)
list1.append(a)
print(list1)
a=Num(4,1,6)
a.cal()
- 有如下值集合[11,22,33,44,55,66,77,88,99,90],将所有大于66的值保存至字典的第一个key中,将小于66的值保存至第二个key的值中。 即:{‘k1’:大于66的所有值,‘k2’:小于66的所有值}
class Fenlei:
def panduan(self):
dic_ = {'k1': [], 'k2': []}
for i in list1:
if i>66:
dic_['k1'].append(i)
elif i<66:
dic_['k2'].append(i)
print(dic_)
list1=[11,22,33,44,55,66,77,88,99,90]
l=Fenlei()
l.panduan()
4.使用while打印出以下的图形
*
***
*****
*******
*********
*******
*****
***
*
class Pailie:
i=1 #i是行数
j=5 #j是空格数
k=-1 #k是*数
while i<=9:
i+=1
j-=1
if j>=0:
k += 2
print(' '*j,'*'*k)
else:
k -= 2
print(' '*abs(j),'*'*(k))
Pailie()
- 有如下列表, nums=[2,7,11,15,1,8,7] 请找到列表中任意两个元素相加能够等于9的元素集合,列[(2,7), (1,8)]
class H:
def cal(self):
list1 = []
for i in nums:
for j in nums:
if i+j == 9:
list1.append((i, j))
print(list1)
nums=[2,7,11,15,1,8,7]
h=H()
h.cal()
7.地铁交通价格调整为:6公里(含)内3元;6公里至12公里(含)4元;12公里至22公里(含)5元;22公里至32公里(含)6元;32公里以上部分,每增加1元可乘坐20公里。使用市政交通一卡通刷卡乘坐轨道交通,每自然月内每张卡支出累计满100元以后的乘次,价格给予8折优惠;满150元以后的乘次,价格给予5折优惠;支出累计达到400元以后的乘次,不再享受打折优惠。
要求:
假设每个月,小明都需要上20天班,每次上班需要来回1次,即每天需要乘坐2次同样路线的地铁;每月月初小明第一次刷公交卡时,扣款5元;编写程序,从键盘获取距离,帮小明计算,如果不使用市政交通一卡通的每月总费用,和使用市政交通一卡通的每月总费用
class NotUse:
def __init__(self,distance):
self.distance=distance
self.uprice=0
self.tprice=0
def unitprice(self): #单价
if self.distance<=6:
self.uprice=3
elif self.distance>6 and self.distance<=12:
self.uprice=4
elif self.distance>12 and self.distance<=22:
self.uprice=5
elif self.distance>22 and self.distance<=32:
self.uprice=6
elif self.distance>32:
if (self.distance-32)%20==0:
self.uprice=6+(self.distance-32)/20
elif (self.distance-32)%20!=0:
self.uprice = 6 + (self.distance - 32) // 20+1
def totalprice(self): #总价
self.tprice=5+20*2*self.uprice
print(self.tprice)
class Use:
def __init__(self, distance):
self.distance = distance
self.uprice = 0
self.tprice = 0
def unitprice(self): #单价
if self.distance<=6:
self.uprice=3
elif self.distance>6 and self.distance<=12:
self.uprice=4
elif self.distance>12 and self.distance<=22:
self.uprice=5
elif self.distance>22 and self.distance<=32:
self.uprice=6
elif self.distance>32:
if (self.distance-32)%20==0:
self.uprice=6+(self.distance-32)/20
elif (self.distance-32)%20!=0:
self.uprice = 6 + (self.distance - 32) // 20+1
def totalprice(self): #self.tprice折扣前的总价钱 self.tprice1是折扣后的总价钱
self.tprice1=0
self.tprice=2*20*self.uprice
if self.tprice>=100 and self.tprice<150:
self.tprice1=100+(self.tprice-100)*0.8
elif self.tprice>=150 and self.tprice<400:
self.tprice1 = 100 + (150-100) *0.8 + (self.tprice-150)*0.5
elif self.tprice >400:
self.tprice1 = 100+(150-100)*0.8+(self.tprice-400)*0.5+self.tprice-400
print(self.tprice1+5)
xiaoming1=NotUse(8)
xiaoming2=Use(8)
xiaoming1.unitprice()
xiaoming1.totalprice()
xiaoming2.unitprice()
xiaoming2.totalprice()