Python3.x 基础练习题100例(41-50)

练习41:

题目:
模仿静态变量的用法。
程序:

def varfunc():
    var = 0
    print('var = %d' % var)
    var += 1

if __name__ == '__main__':
    for i in range(3):
        varfunc()

# 类的属性

# 作为类的一个属性吧

class Static:
    StaticVar = 5

    def varfunc(self):
        self.StaticVar += 1
        print(self.StaticVar)

print(Static.StaticVar)
a = Static()
for i in range(3):
    a.varfunc()

输出结果:

var = 0
var = 0
var = 0
5
6
7
8

练习42:

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

num = 2

def autofunc():
    num = 1
    print('internal block num = %d' % num)
    num += 1

for i in range(3):
    print('The num = %d' % num)
    num += 1
autofunc()

输出结果:

The num = 2
internal block num = 1
The num = 3
internal block num = 1
The num = 4
internal block num = 1

练习43:

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

class Num:
    nNum = 1

    def inc(self):
        self.nNum += 1
        print('nNum = %d' % self.nNum)

if __name__ == '__main__':
    nNum = 2
    inst = Num()
    for i in range(3):
        nNum += 1
        print('The num = %d' % nNum)
        inst.inc()

输出结果:

The num = 3
nNum = 2
The num = 4
nNum = 3
The num = 5
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(len(X)):
   # 迭代输出列
   for j in range(len(X[0])):
       result[i][j] = X[i][j] + Y[i][j]

for r in result:
   print(r)

输出结果:

[17, 15, 4]
[10, 12, 9]
[11, 13, 18]

练习45:

题目:
统计 1 到 100 之和。
程序:

tmp = 0
for i in range(1, 101):
    tmp += i
print('The sum is %d' % tmp)

输出结果:

The sum is 5050

练习46:

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

TRUE = 1
FALSE = 0

def SQ(x):
    return x * x

print('如果输入的数字小于 50,程序将停止运行。')
again = 1
while again:
    num = int(input('请输入一个数字:'))
    print('运算结果为: %d' % (SQ(num)))
    if SQ(num) >= 50:
        again = TRUE
    else:
        again = FALSE

输出结果:

如果输入的数字小于 50,程序将停止运行。
请输入一个数字:8
运算结果为: 64
请输入一个数字:2
运算结果为: 4

练习47:

题目:
两个变量值互换。
程序:

def exchange(a, b):
    a, b = b, a
    return (a, b)

if __name__ == '__main__':
    x = 10
    y = 20
    print('x = %d,y = %d' % (x, y))
    x, y = exchange(x, y)
print('x = %d,y = %d' % (x, y))

输出结果:

x = 10,y = 20
x = 20,y = 10

练习48:

题目:
数字比较。
程序:

if __name__ == '__main__':
    i = 10
    j = 20
    if i > j:
        print('%d 大于 %d' % (i, j))
    elif i == j:
        print('%d 等于 %d' % (i, j))
    elif i < j:
        print('%d 小于 %d' % (i, j))
    else:
        print('未知')

输出结果:

10 小于 20

练习49:

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

MAXIMUM = lambda x, y: (x > y) * x + (x < y) * y
MINIMUM = lambda x, y: (x > y) * y + (x < y) * x

if __name__ == '__main__':
    a = 10
    b = 20
    print('The largar one is %d' % MAXIMUM(a, b))
print('The lower one is %d' % MINIMUM(a, b))

输出结果:

The largar one is 20
The lower one is 10

练习50:

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

import random

# 生成 10 到 20 之间的随机数
print(random.randint(10, 20))

输出结果:

19
posted @ 2021-02-26 10:01  youcans  阅读(152)  评论(0编辑  收藏  举报