PandaLi 发表于 2020-4-10 16:12

请大佬帮忙看看这个python问题

当第一次输入11位手机号时,它会直接输出号码长度和被隐藏的部分。而如果输入错误,它会提示重新输入,等再次输入正确时,它不会提示号码长度是多少,而是直接输出被隐藏后的手机号

#手机号隐私处理
Tel=input()
while len(Tel) != 11:
    print("号码长度:",len(Tel))
    print("号码长度错误! 请重新输入!")
    Tel=input()
    while len(Tel) != 11:
      print("号码长度错误! 请重新输入!")
      Tel=input()
print("号码长度:",len(Tel))
print(Tel.replace(Tel,"*"*5))

井右寺 发表于 2020-4-10 16:31

本帖最后由 井右寺 于 2020-4-10 16:32 编辑

if __name__ == '__main__':
      while True:
                Tel = input("plz enter phone number below\n\t:")
                if len(Tel) != 11:
                        print("wrong length, re enter plz")
                        continue

                print("number is %s****%s" %(Tel, Tel))

                Run = input("enter 0 to exit, any other to continue\n")

                if Run == '0':
                        break

RoyPenn 发表于 2020-4-10 16:40

?输入正确之后,不是会输出号码长度吗

南川没有北鱼 发表于 2020-4-10 16:41

感觉一楼的代码好简洁啊

a976606645 发表于 2020-4-10 16:46

本帖最后由 a976606645 于 2020-4-10 16:55 编辑

在1楼基础上加个判断就可以了只有第一次输入正确时才打印长度
i = 0
while True:
    Tel = input("plz enter phone number below\n\t:")
    if len(Tel) != 11:
      if i == 0:
            print("number's length:"+str(len(Tel)))
      print("wrong length, re enter plz")
      i+=1
      continue
    if i==0:
      print("number's length:"+str(len(Tel)))
    print("number is %s****%s" % (Tel, Tel))
    Run = input("enter 0 to exit, any other to continue\n")
    if Run == '0':
      break

wkfy 发表于 2020-4-10 16:50

本帖最后由 wkfy 于 2020-4-10 16:53 编辑

不是说楼主你啊,感觉出这个题目的人好*蛋,一定不是正规程序员,看了三遍题目要求才看懂楼主的意思。不叫人判断手机号码是否合规。却只为了判断之前有没有输入过类似的号码,然后要求正确的一次不显示输入长度的提示。是这个意思吧?我这初学新手都看不下去了。


input_lists=[]
while True:
    Tel =input('请输入手机号码:')
    if Tel[:10] not in input_lists:
      input_lists.append(Tel)
      print('号码长度:%s' % len(Tel))
    if len(Tel) == 11:
      print(Tel.replace(Tel,"*"*5))
    else:
      print('号码长度错误!请重新输入!')

silypp 发表于 2020-4-10 16:52

在你的基础上改的

Tel=input()
if len(Tel) == 11:
    print("号码长度:",len(Tel))
while len(Tel) != 11:
    print("号码长度:",len(Tel))
    print("号码长度错误! 请重新输入!")
    Tel=input()
print(Tel.replace(Tel,"*"*5))

豆虫 发表于 2020-4-10 16:53

可不可以把判断改一下顺序?

Tel=input()
while Tel:
    if len(Tel) == 11:
      print("号码长度:", len(Tel))
      print(Tel.replace(Tel, "*" * 5))
      break
    else:
      print("号码长度:",len(Tel))
      print("号码长度错误! 请重新输入!")
      Tel = input()

PandaLi 发表于 2020-4-10 17:00

豆虫 发表于 2020-4-10 16:53
可不可以把判断改一下顺序?

Tel=input()


不可以呀   python123里面不给分很难搞
不过还是谢谢呀

PandaLi 发表于 2020-4-10 17:02

wkfy 发表于 2020-4-10 16:50
不是说楼主你啊,感觉出这个题目的人好*蛋,一定不是正规程序员,看了三遍题目要求才看懂楼主的意思。不叫 ...

python123平台无语
谢谢大佬
页: [1] 2
查看完整版本: 请大佬帮忙看看这个python问题