1 随机生成两个小于100的整数,打印其中一个数的数据类型和存储地址, 求这两个数的和、差、积、商、幂运算.
知识点
Python random randint() 方法
注意
返回的是大于等于start并且小于等于stop的数
源代码
import random
num1 = random.randint(1,100)
num2 = random.randint(1,100)
print("这两个数为:%d,%d"%(num1,num2))
print("num1的类型为:%s"%(type(num1)))
print("num1的内存地址为:%d"%(id(num1)))
sum = num1 + num2
print("两个数的和为:%d"%(sum))
dif = num1 - num2
print("两个数的差为:%d"%(dif))
pro = num1 * num2
print("两个数的积为:%d"%(pro))
dea = num1 / num2
print("两个数的商为:%d"%(dea))
提问
为什么这段代码前面要使用%s来输出:print(“num1的类型为:%s”%(type(num1)))
回答
这段代码中使用了字符串格式化操作符 % 来将 type(num1) 的返回值插入到输出字符串中,以实现打印 num1 的类型。具体来说,%s 是一种格式化字符,它表示插入一个字符串。在字符串中,% 后面的 (type(num1)) 表示要插入的字符串,它的值是通过调用 type() 函数来获取 num1 的类型。这个值将被插入到整个字符串中的 %s 的位置。
因此,这个代码行的目的是将一个字符串输出到控制台,这个字符串包括了 “num1的类型为:” 和 num1 的类型。使用字符串格式化操作符可以让我们以一种方便和可读的方式构造这个字符串,使得代码更易于理解和维护。
2 编程函数,输入两个数,求最大公约数和最小公倍数
知识点
求最小公倍数:
最小公倍数 = 两个整数的乘积 / 最大公约数
求最大公约数:
假设a > b > 0,那么a和b的最大公约数等于b和a%b的最大公约数,然后把b和a%b作为新一轮的输入。
由于这个过程会一直递减,直到a%b等于0的时候,b的值就是所要求的最大公约数。
比如:
9和6的最大公约数等于6和9%6=3的最大公约数。
由于6%3==0,所以最大公约数为3。
源代码
def gcd(a, b):
if a % b == 0:
return b
if a % b != 0:
if a > b:
return gcd(b, a % b)
elif a < b:
return gcd(b, a)
s = input().split()
a, b = int(s[0]), int(s[1])
c = a
d = b
# 简单的输入a和b
# a = int(input())
# b = int(input())
e = gcd(a,b)
print("a和b的最大公约数为:%s"%gcd(a,b))
f = (c*d)//e
print("a和b的最小公倍数为:%s"%f)
注意
s = input().split()这段代码的意思是:从标准输入中读入一行字符串,然后用空格把字符串分割成多个子字符串,并把它们存储到一个列表中。
具体来说,这个代码会执行以下步骤:
调用 Python 内置函数 input() 从标准输入中读入一行字符串。
调用字符串对象的 split() 方法,以空格为分隔符把字符串分割成多个子字符串。
把分割后的子字符串存储到一个列表中。
返回这个列表。
因此,如果你在 Python 解释器中执行这段代码,并在提示符下输入一行字符串,比如 “Hello World”,那么这个代码会返回一个列表,内容为 [‘Hello’, ‘World’]。
a, b = int(s[0]), int(s[1])这段代码什么意思:
这段代码将字符串变量s的前两个字符转换为整数,并将它们赋值给变量a和b。
假设s是一个长度为至少为2的字符串,这段代码可以被写成以下形式:
s = “12xyz”
a = int(s[0])
b = int(s[1])
这将把s的第一个字符"1"和第二个字符"2"转换为整数1和2,并将它们赋值给a和b。注意,如果字符串中的字符不是数字,那么这个代码将会抛出一个ValueError异常。
3 随机生成一个列表a,10个元素。打乱顺序,然后求a的最大值,最小值,和,平均值,显示从大到小的顺序。
知识点
在python中如何求列表的平均值?
1、要求一个Python列表的平均值,你可以使用内置的sum()和len()函数。sum()函数可以用来计算列表中所有元素的总和,len()函数可以用来计算列表中元素的数量。将两者相除即可得到平均值。
my_list = [2, 4, 6, 8, 10]
avg = sum(my_list) / len(my_list)
print(“平均值是:”, avg)
2、另外,如果你使用了NumPy库,你也可以使用numpy.mean()函数来计算平均值,这个函数可以直接对整个数组进行操作。
import numpy as np
my_list = [2, 4, 6, 8, 10]
avg = np.mean(my_list)
print(“平均值是:”, avg)
源代码
import random
# 随机生成一个列表 a,包含10个元素,值在0到100之间
a = [random.randint(0, 100) for i in range(10)]
# 打印原始的列表 a
print("原始的列表 a:", a)
# 打乱列表 a 的顺序
random.shuffle(a)
# 打印打乱顺序后的列表 a
print("打乱顺序后的列表 a:", a)
# 计算列表 a 的最大值、最小值、和、平均值
max_value = max(a)
min_value = min(a)
sum_value = sum(a)
mean_value = sum_value / len(a)
# 打印列表 a 的最大值、最小值、和、平均值
print("列表 a 的最大值为:", max_value)
print("列表 a 的最小值为:", min_value)
print("列表 a 的和为:", sum_value)
print("列表 a 的平均值为:", mean_value)
# 对列表 a 进行从大到小排序
sorted_a = sorted(a, reverse=True)
# 打印从大到小排序后的列表 a
print("从大到小排序后的列表 a:", sorted_a)
注意
random.shuffle(a)这段代码是:对列表 a 进行乱序操作。
shuffle 函数会将列表 a 中的元素随机打乱顺序,使得每个元素出现在一个随机位置上。这种操作是一种常见的用法,例如在数据集中随机打乱样本的顺序,以避免模型学习到任何可能存在的顺序性。
sorted_a = sorted(a, reverse=True)这段代码是:对列表 a 进行排序。
sorted 函数会接收一个可迭代对象(例如列表、元组、集合等),并返回一个新的列表,其中包含了可迭代对象中的元素按照指定的规则排序后的结果。
在这段代码中,sorted 函数会按照默认的升序规则对列表 a 进行排序。同时,使用参数 reverse=True 可以指定将列表 a 按照降序规则进行排序。
最终,sorted_a 中存储的是按照指定规则排序后的列表 a 的副本,而原列表 a 的顺序并未改变。