三个小作业

一.判别一个字符串是否为合法的手机号

tel=input()
if(tel.isdigit()):#检查手机号是否为数字
    if(len(tel)==11):
        print('是合法手机号')
    else:
        print('不是合法手机号')
else:
    print('不是合法手机号')

二.十进制转二进制

N=1020
while(N>0):
    num = N%2
    print(num,end='') #print(num,end='')
    N = int(N/2)

遇到的问题:

1.最开始代码为N=N/2时,结果出现大量小数,前面加int,可保证每次进入循环的N都为N/2的商(整数)

2.在默认情况下,print()函数会自动在行末加上回车,如果不需回车,使用end参数,就可以改变它的行为。

3.此时输出为0011111111

想要使结果为正确的顺序,可先把计算出来的余数存储在字符串中,然后使用字符串切片运算倒序输出。

N=1020
num=''
while(N>0):
    num+=str(N%2)
    N=int(N/2)
print(num[::-1])

三.N的阶乘

num=1
N=int(input())
for item in range(1,N+1):
    num*=item
    item=item+1
print(num)

出现的问题:

最开始代码为N=input(),输入一个数后会报错,因为无论用户输入的是什么信息,默认都是以字符串(str型)的形式被input()函数获取。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值