- 题目041:模仿静态变量的用法。
如果是函数中的局部变量,每次调用函数都会初始化。
而类中的变量,创建类的时候初始化,每次执行类中的函数的时候,不会初始化类变量。
def varfunc():
var=0
print('var=%d'%var)
var+=1
if __name__=='__main___':
for i in range(3):
varfunc()
关于__name==__main的用法,参考链接
class Static:
Staticvar=1 #Staticvar作为类的宇哥属性,是一个静态变量
def varfunc(self):
self.Staticvar+=1
print(self.Staticvar)
print(Static.Staticvar)
a=Static()
for i in range(3):
a.varfunc()
-题目044:两个3*3的矩阵,实现其对应位置的数据相加,并返回一个新矩阵:
import numpy as np
x=np.array([[1,2,3],[4,5,6],[7,8,9]])
y=np.array([[1,2,3],[4,5,6],[7,8,9]])
z=x+y
print(z)
- 题目045:统计 1 到 100 之和。
print(sum(range(1,101)))
- 题目046:求输入数字的平方,如果平方运算后小于 50 则退出。
while 1:
x=int(input('请输入一个整数:'))
print(x*x)
if x*x>50:
break
- 题目049:使用lambda来创建匿名函数。
def f(x):
return x**2
print(f(4))
g=lambda x: x**2 #lambda函数也叫匿名函数,即,函数没有具体的名称
print(g(4))
拓展
- map函数:
map(function,iterable)第一个参数是函数,第二个参数是可迭代函数,函数依次在可迭代内容上计算,然后返回一个可迭代内容。
什么是iterable?在Python里iterable被认为是一类对象,这类对象能够一次返回它的一个成员(也就是元素)。抽象一点就是
适合迭代的对象。实际上,任何具有__iter__()或__getitem__()方法的对象,Python就认为它是一个iterable。
Python里有大量内置的iterable类型,如: list,str,tuple,dict,file,xrange等。使用内置的iter()函数来生成。
foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
print(list(map(lambda x:x+2,foo))) #必须用list使得mao可视化,不然得出的是map objec
2.filter函数
filter(function or None,iterable)过滤掉不符合条件的可迭代函数。
foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
print(list(filter(lambda x:x%2==0,foo))) #输出[2, 18, 22, 24, 8, 12]
3.reduce函数
reduce(function,iterable,初始值) 与map不同的是function要接收两个参数。且现在reduce需要调用。
from functools import reduce
foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
print((reduce(lambda x,y:x+y,foo,100))) #不需要用list()函数直接可视化结果
- 题目050:输出一个随机数。
import random
random.random() # 0.85415370477785668 # 随机一个[0,1)之间的浮点数
random.uniform(0, 100) # 18.7356606526 # 随机一个[0,100]之间的浮点数
random.randrange(0, 100, 2) # 44 # 随机一个[0,100)之间的偶数
random.randint(0, 100) # 22 # 随机一个[0,100]之间的整数
seed = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()_+=-" # 任意字符串(作为随机字符种子库)
random.choice(seed) # 'd' # 随机一个字符
random.sample(seed, 3) # ['a', 'd', 'b'] # 随机多个字符(字符可重复)
''.join(random.sample(seed,3)) # '^f^' # 随机指定长度字符串(字符可重复)
random.shuffle(list) # 列表中的元素打乱