python第三次作业
1。计算e值
你可以使用下面的数列近似计算e
$$
e=1+\frac{1}{1!}+\frac{1}{2!}+\frac{1}{3!}+\frac{1}{4!}+...+\frac{1}{i!}
$$
当i越大时,计算结果越近似于e
2.有1、2、3、4这个四个数字,能组成多少个互不相同且无重复数字的三位数?分别又是多少?
3.水仙花数,是一个三位数,且这个数的个位、十位和百位的立方和等于该数字本身,例如$153=1^3+5^3+3^3$
4.编写代码,实现十进制数据转换二进制、二进制转换十进制、十进制转换十六进制、十六进制转换十进制的代码实现
**输入描述**
输入一个原始数据
**输出描述**
输出一个转换后的数据
**示例**
> 输入一个数据(十进制): 3
> 输出(二进制):11
#分析变量定义变量
a=int(input())
m=1
c=1
for i in range(1,a+1):#采用for in 循环求出阶乘和
c*=i
m+=1/c
print(m)
#采用循环
m=int(input())
num=0
for a in range(1,m):
for b in range(m-1,0,-1):
for c in range(1,m):
if a!=b and b!=c and a!=c:
num+=1
str(a), str(b), str(c)
print('第%d种结果 是:%s%s%s' % (num,a,b,c))
for i in range(100,1000):#套用循环得到100到1000的数
a=i%10
b=i//10%10
c=i//100#对各位数进行提取
if a**3+b**3+c**3==i:
print(i)
def get_integer_input(prompt):
while True:
try:
value = int(input(prompt))
return value
except ValueError:
print("输入无效,请输入一个整数。")
def get_hex_input(prompt):
while True:
value = input(prompt).upper()
if all(c in "0123456789ABCDEF" for c in value):
return value
else:
print("输入无效,请输入一个有效的十六进制数。")
while True:
m = get_integer_input("请输入一个整数输入 1 十进制转二进制输入 2 二进十进制 输入 3 十进制转换为十六进制 输入 4 十六进制转换为十进制:")
if m == 1:
x = get_integer_input("请输入一个十进制数:")
if x < 0:
print("请输入一个非负整数。")
continue
s = ""
while x > 0:
b = x % 2
s = str(b) + s
x = x // 2
print("结束循环,跳出循环")
print("转换后的二进制数据:", s)
elif m == 2:
def binary(binary_str):
decimal_value = 0
binary_str = binary_str[::-1]
for i, bit in enumerate(binary_str):
if bit == '1':
decimal_value += 2 ** i
return decimal_value
binary_str = get_integer_input("请输入一个二进制数:")
decimal_value = binary(str(binary_str))
print(f"二进制数 {binary_str} 转换为十进制数为 {decimal_value}")
elif m == 3:
def decimal_to_hexadecimal(decimal_num):
hex_chars = "0123456789ABCDEF"
hexadecimal_str = ""
while decimal_num > 0:
remainder = decimal_num % 16
hexadecimal_str = hex_chars[remainder] + hexadecimal_str
decimal_num //= 16
return hexadecimal_str
decimal_num = get_integer_input("请输入一个十进制数:")
hexadecimal_str = decimal_to_hexadecimal(decimal_num)
print(f"十进制数 {decimal_num} 转换为十六进制数为 {hexadecimal_str}")
elif m == 4:
def hexadecimal_to(hexadecimal_str):
hex_chars = "0123456789ABCDEF"
decimal_value = 0
hexadecimal_str = hexadecimal_str.upper()[::-1]
for i, char in enumerate(hexadecimal_str):
decimal_value += hex_chars.index(char) * (16 ** i)
return decimal_value
hexadecimal_str = get_hex_input("请输入一个十六进制数:")
decimal_value = hexadecimal_to(hexadecimal_str)
print(f"十六进制数 {hexadecimal_str} 转换为十进制数为 {decimal_value}")
else:
print("无效的输入,请重新选择。")