Python3 100例 | 菜鸟教程 习题链接

题41:静态变量(类变量)
题目:模仿静态变量的用法。

Python语言并不支持静态变量。因为Python是动态语言,不存在完全静态的变量。
Python中,静态成员变量称为类变量,非静态成员变量称为实例变量

def varfunc():
    var = 0
    print(var)
    var += 1
if __name__ == '__main__':
    for i in range(3):
        varfunc()

# 0
# 0
# 0
class Static:
    StaticVar = 5
    def varfunc(self):
        self.StaticVar += 1
        print('self.StaticVar =', self.StaticVar)

print('StaticVar =', Static.StaticVar)
print('---------------------')
a = Static() # 调用, 创建了一个对象
for i in range(3):
    a.varfunc() # 调用方法
print('-----------------')
print('StaticVar =', Static.StaticVar)
print('----------------------')
a.StaticVar = 10 # 修改属性
print('StaticVar =', a.StaticVar)

# StaticVar = 5
# ---------------------
# self.StaticVar = 6
# self.StaticVar = 7
# self.StaticVar = 8
# -----------------
# StaticVar = 5
# ----------------------
# StaticVar = 10

题42:
题目:学习使用auto定义变量的用法。
程序分析:没有auto关键字,使用变量作用域来举例吧。

搞不懂这道题干啥的。。。局部变量?

num = 2
def autofunc():
    num = 1
    print('def = ', num)
    num += 1

for i in range(3):
    print(num)
    num += 1
    autofunc()

# 2
# def =  1
# 3
# def =  1
# 4
# def =  1

题43:
题目:模仿静态变量(static)另一案例。
程序分析:演示一个python作用域使用方法

class Num:
    nNum = 1
    def inc(self):
        self.nNum += 1
        print('self.nNum = ', self.nNum)

if __name__ == '__main__':
    nNum = 2
    inst = Num()
    for i in range(3):
        nNum += 1
        print('nNum = ', nNum)
        inst.inc()
# nNum =  3
# self.nNum =  2
# nNum =  4
# self.nNum =  3
# nNum =  5
# self.nNum =  4

题44:矩阵相加
两个 3 行 3 列的矩阵,实现其对应位置的数据相加,并返回一个新矩阵:
X = [[12,7,3],
[4 ,5,6],
[7 ,8,9]]

Y = [[5,8,1],
[6,7,3],
[4,5,9]]
程序分析:创建一个新的 3 行 3 列的矩阵,使用 for 迭代并取出 X 和 Y 矩阵中对应位置的值,相加后放到新矩阵的对应位置中。
方法一:

X = [[12,7,3], [4,5,6], [7,8,9]]
Y = [[5,8,1], [6,7,3], [4,5,9]]
result = [[0,0,0], [0,0,0], [0,0,0]]
for i in range(3):
    for j in range(3):
        result[i][j] = X[i][j] + Y[i][j] #各位置元素相加
print(result)

方法二:

import numpy as np
X = [[12,7,3], [4,5,6], [7,8,9]]
Y = [[5,8,1], [6,7,3], [4,5,9]]
X = np.array(X)
Y = np.array(Y)
print(X+Y)

题45:自然数之和
题目:统计 1 到 100 之和。

s = 0
for i in range(101):
    s += i
print(s)
print(sum(range(101)))
from functools import reduce
print(reduce(lambda x,y:x+y, range(101)))
#等差数列求和公式Sn = n*a1 + n*(n-1)*d/2, d是公差,a1是首项,n为项数
print(100*1+100*99*1/2)

题46:
题目:求输入数字的平方,如果平方运算后小于 50 则退出。

m = 100
while m>= 50:
    x = int(input('输入数字:'))
    m = x**2
    print(m)

题47:
题目:两个变量值互换。

a = int(input("请输入a变量的值: "))
b = int(input("请输入b变量的值: "))
a, b = b, a
print('a = %d b = %d'%(a, b))

题48:
题目:数字比较。

a = int(input())
b = int(input())
c = max(a, b)
d = min(a, b)
if a != b:
    print(c,'>', d)
else:
    print('相等')

题49:创建匿名函数
题目:使用lambda来创建匿名函数。

X = lambda x,y:x+y
x = int(input())
y = int(input())
print(X(x, y))

题50:random模块
题目:输出一个随机数。
程序分析:使用 random 模块。

import random
print(random.random()) #0-1之间的随机数
print(random.uniform(100,200)) #随机数
print(random.randint(100,200)) #随机整数

更多推荐

Python3 入门经典100例 | 菜鸟教程 41-50题