python基础100打卡(041~050)

这篇博客是关于Python基础的100个练习题的打卡记录,包括模仿静态变量、矩阵相加、数字统计等,通过分析和代码实践深入理解Python语法和特性。
摘要由CSDN通过智能技术生成

继续学习python啦

打卡练习题:菜鸟100实例

041

题目

模仿静态变量的用法。

代码

def varfunc():
    var = 0
    print(f"var = {var}")
    var += 1

if __name__ == '__main__':
    for i in range(3):
        varfunc()
	print()
        
# 作为类的一个属性
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

042

题目

学习使用auto定义变量的用法。

分析

参考菜鸟解析:没有auto关键字,使用变量作用域来实现。

代码

num = 2
def autofunc():
    num = 1
    print(f"internal block num = {num}")
    num += 1
for i in range(3):
    print(f"The num = {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

043

题目

模仿静态变量(static)另一个案例

分析

菜鸟分析:演示一个python作用域使用方法

代码

class Num:
    nNum = 1
    def inc(self):
        self.nNum += 1
        print(f"nNum = {self.nNum}")

if __name__ == '__main__':
    nNum = 2
    inst = Num()
    for i in range(3):
        nNum += 1
        print(f"The num = {nNum}")
        inst.inc()
        
----------结果----------
The num = 3
nNum = 2
The num = 4
nNum = 3
The num = 5
nNum = 4

044

题目

两个 3 行 3 列的矩阵,实现其对应位置的数据相加,并返回一个新矩阵:

X = [[12,7,3],
    [4 ,5,6],
    [7 ,8,9]]

Y = [[5,8,1],
    [6,7,3],
    [4,5,9]]

分析

使用二维列表,结合循环取出X、Y对应的值,相加后放入新的列表中

代码

X = [[12,7,3], [4,5,6], [7,8,9]]
Y = [[5,8,1], [6,7,3], [4,5,9]]
li = [[],[],[]]
for i in range(3):
    for j in range(3):
        li[i].append(X[i][j] + Y[i][j])
print(li)

方法二:

X = [[12,7,3], [4,5,6], [7,8,9]]
Y = [[5,8,1], [6,7,3], [4,5,9]]
#  li = [[],[],[]] -----列表为空,若进行li[i][j]就会报IndexError错
li = [[0,0,0],[0,0,0],[0,0,0]]
for i in range(len(X)):
    for j in range(len(X[0])):
        li[i][j] = X[i][j] + Y[i][j]
for n in li:
    print(n)

**注意:**见上面代码注释,若要用li[i] [j]取某一个元素,列表不能为空,必须每个坑都有元素!!!

045

题目

统计 1 到 100 之和。

代码

sum = 0
for i in range(1, 101):
    sum += i
print(f"1到100和:{sum}")

046

题目

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

分析

使用永久循环,获取用户输入和做平方运算,再判断运算结果,若小于50,退出循环;否则进行下一轮。

代码

while True:
    num = float(input("输入数字:"))
    result = num ** 2
    print(result)
    if result < 50:
        print("结束")
        break

如果输入只为整数,就可以对50开平方直接比欸

import math

while True:
    num = int(input("输入数字:"))
    if num < math.sqrt(50)+1:
        print("结束")
        break

047

题目

两个变量值互换。

分析

使用python的多元赋值

代码

x = int(input("输入x:"))
y = int(input("输入y:"))
x, y = y, x
print(f"交换后x={x},y={y}")

048

题目

数字比较。

代码

def compare(a, b):
    if a > b:
        print(f"{a}>{b}")
    elif a == b:
        print(f"{a}={b}")
    else:
        print(f"{a}<{b}")

if __name__ == '__main__':
    x = int(input("输入x:"))
    y = int(input("输入y:"))
    compare(x, y)

049

题目

使用lambda来创建匿名函数

分析

lambda 参数:表达式

代码

max = lambda x,y : (x>y)*x + (y>x)*y
min = lambda x,y : (x<y)*x + (y<x)*y

if __name__ == '__main__':
    x = int(input("输入x:"))
    y = int(input("输入y:"))
    print(f"{max(x, y)}>{min(x, y)}")

050

题目

输出一个随机数。

分析

使用random模块

代码

import random

# randint(a,b) 范围[a,b]随机取一个整数
num1 = random.randint(1, 10)
print(num1)
# randrange([start],stop,[step]) 范围前闭后开 参数形式类似于range()
num2 = random.randrange(1, 10, 2)
print(num2)

续上了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值