python练习100题(4)

  • 题目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))

拓展

  1. 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)  # 列表中的元素打乱
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值