写在前面:文章中的例子均来自于学校发布的大计基作业,整理在此处以作备忘复习之用
1.一个数如果倒过来还是这个数,则这样的数称为回文数。例如,12321 倒过来还是 12321,所以,12321 是回文数。1234,倒过来是 4321,它不是回文数。现输入一个整数,判断它是否为回文数。
程序如图:
x=input("请输入您要验证的整数:")
y=len(x)
z=0
for i in range(y):
if x[i]==x[y-1-i]:
z=1
else:
z=0
if z==1:
print("该整数是回文数")
else:
print("该整数不是回文数")结果示例:
============== RESTART: C:\Users\python小程序\1.py =============
请输入您要验证的整数:1122332211
该整数是回文数2.编写函数,将十进制整数转换为二进制形式(用字符串表示),返回二进制形式的字符串,在主程序中输入十进制整数,调用函数转换为二进制(字符串形式),显示二进制数。例如,输入:12,输出:1100,要求不能使用Python中的转换函数直接转换,要自己通过除以2取余的运算进行转换。
程序如图:
def L(x):
a=0
b=x
c=x
while b>=1:
b=b//2
a=a+1
d=[]
e=0
for i in range(a):
e=c%2
d.append(str(int(e)))
c=(c-e)/2
d.reverse()
f="".join(d)
result=f
return result
x=int(input("请输入您要转化的十进制整数:"))
print("其对应的二进制数为:",L(x))结果示例:
============== RESTART: C:\Users\python小程序\1.py =============
请输入您要转化的十进制整数:10
其对应的二进制数为: 1010
============== RESTART: C:\Users\python小程序\1.py =============
请输入您要转化的十进制整数:1000
其对应的二进制数为: 1111101000
============== RESTART: C:\Users\python小程序\1.py =============
请输入您要转化的十进制整数:15
其对应的二进制数为: 11113.编写函数,将十进制小数转换为二进制小数,返回二进制小数的字符串形式,最多保留到小数点后4位。编写主程序,输入小数,调用函数转换为二进制显示。例如:输入:0.625,输出:0.101,输入:.8125,则输出:0.1101。注意,需要使用乘以2取整的方法。
程序如图:
def M(x):
a=x
b=[]
while True:
a=a*2
if a>=1.0:
b.append("1")
#此处的1需要用""转化为字符串,如不转化则会将一个整型数编入列表,而整型数本身无法完成从列表到字符串的转化。
a=a-1
continue
elif 0<a<1.0:
b.append("0")
continue
else:
break
b.insert(0,"0.")
c="".join(b)
result=c
return result
x=float(input('请输入您要转化的十进制小数:'))
print('其对应的二进制数为:',str(M(x)))结果示例:
============== RESTART: C:\Users\python小程序\1.py =============
请输入您要转化的十进制小数:0.1
其对应的二进制数为: 0.0001100110011001100110011001100110011001100110011001101
============== RESTART: C:\Users\python小程序\1.py =============
请输入您要转化的十进制小数:0.8125
其对应的二进制数为: 0.11014.整合上面两题,写出十进制实数转换为二进制实数的程序。如输入:12.625,则输出:1100.101
程序如图:
def LM(x):
L=int(x)
M=float(x-L)
#考虑整数部分
a1=0
b1=L
c1=L
while b1>=1:
b1=b1//2
a1=a1+1
d1=[]
e1=0
for i in range(a1):
e1=c1%2
d1.append(str(int(e1)))
c1=(c1-e1)/2
d1.reverse()
#考虑小数部分
a2=M
b2=[]
while True:
a2=a2*2
if a2>=1.0:
b2.append("1")
a2=a2-1
continue
elif 0<a2<1.0:
b2.append("0")
continue
else:
break
b2.insert(0,".")
b=d1+b2
result="".join(b)
return result
x=float(input('请输入您要转化的十进制数:'))
print('其对应的二进制数为:',LM(x))结果示例:
============== RESTART: C:\Users\python小程序\1.py =============
请输入您要转化的十进制数:123.8125
其对应的二进制数为: 1111011.1101
















