Python练习05——上机4,进制转换

1.念数字,输入一个数,输出每个数对应的拼音,例如输入123输出yi er san

# 数字拼音
num = ['0','1','2','3','4','5','6','7','8','9','-']
pin = ['ling','yi','er','san','si','wu','liu','qi','ba','jiu','fu']
num1 = input('请输入一个数字:')
pin1 = ''
for i in num1:
    for x in range(11):
        if num[x] == i :
            pin1 += pin[x] +' '
print(pin1)            
        

2.特殊数列求和,输入一个小于10正整数的数,求1+12+…的前n项和

# 特殊数列求和
num1 = eval(input('请输入一个数字(小于10)'))
sum = 0
num = ''
if type(num1)==type(2):
    if num1 >= 10:
        print('date error')
    elif 0<num1<10:
        for i in range(1,num1+1):
            num += str(i)
            sum += int(num)
    print(sum)
            
    

3.打印九九乘法表

# 打印九九乘法表
for i in range(1,10):
    for j in range(1,11-i):
        print('{}*{}={}'.format(i,j,i*j),end='\t')
    print()    


4.将十进制的数转为十六进制的数,不使用进制转换函数。

# 十进制转为十六进制
# 方法一
s = '0123456789ABCDEF'
num10 = eval(input('请输入一个十进制的数'))
a = num10//16
b = num10%16
list1 = [b]
num16 = ''
while a>=16:
    b = a%16
    list1.append(b)
    a = a//16    
else:  
    list1.append(a)
list2 = list(reversed(list1))    
for i in list2:
    num16 += s[i]
print(num16)    
# 方法二
# 使用列表存储数据
# 与方法一类似,不做赘述
s = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F']

5.输入一个二进制,转化为十进制,如果是小数,分为整数和小数两部分,分别计算

# 二进制转为十进制
num2 = input('请输入一个二进制的数字')
listi = num2.split('.')[0] # 整数部分
listf = num2.split('.')[1] # 小数部分
s = '0123456789' 
# 整数二进制
integer = ''.join(listi)
a = int(integer,2)
# 小数部分二进制转换
flo = ''.join(listf)
b= int(flo,2)
# 格式化
print('{0}.{1}'.format(a,b))

6. 判断一个数是否为素数

# 判断一个数是否为素数
num=eval(input('请输入一个数字'))
i=2
while i<=((num//2)+1):
    if num%i == 0:
        print('{}不是素数'.format(num))
        break
    i+=1
else:
    print('{}是素数'.format(num))

7 输出费氏数列,直到某一项大于300为止

1.for循环

# 费氏数列
list1 = [0,1]
for x in range(300):
    a = list1[x] +list1[x+1]
    list1.append(a)
    if a >= 300:
        break   
print(list1)    

2.while循环

# 费氏数列
list1 = [0,1]
x = 0
while x<=20:
    a = list1[x] +list1[x+1]
    list1.append(a)
    x=x+1
    if a >= 300:
        break   
print(list1)    
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芝麻汤圆圆圆子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值