晴朗的天 发表于 2021-9-27 16:26:39

python课后作业第九讲动动手第0题

count= 3
password = 'FishC.com'
a= '请输入密码:'
while count:
    passwd = input(a)
    if passwd == password:
      print('密码正确,进入程序......')
      break
    elif '*' in passwd:
      print('密码中不能含有“*”号!您还有',count,'次机会!"a"')
      continue
    else:
      print('密码输入错误!您还有',count-1,'次机会!"a"')
    count-=1
我想要少打一些字,于是在前面设置了一个变量a='请输入密码:',但是结果出来的时候不会把a的内容打印出来,而是直接把“a”打出来,这个想法是不能实现吗?

冬雪雪冬 发表于 2021-9-27 16:36:12

本帖最后由 冬雪雪冬 于 2021-9-27 16:41 编辑

把a的引号去掉试试
改成这样
print('密码中不能含有“*”号!您还有',count,'次机会!', a)
但没有明白你的思路

fish_nian 发表于 2021-9-27 16:38:21

啥意思?
我试了你的代码没出现什么不会把a得内容打印出来,直接显示请输入密码:

jackz007 发表于 2021-9-27 16:38:31

      print('密码输入错误!您还有',count-1,'次机会!"a"')
      改为
      print('密码输入错误!您还有',count-1,'次机会!' , a)

璎珞君 发表于 2021-9-27 17:37:31

本帖最后由 璎珞君 于 2021-9-27 17:42 编辑

唔   当你的条件为假时进入重新输入的打印语句,由于你的a加入了双引号且在于字符串( '次机会!"a"' ) 内,这时候的“a”是一个字符串而不是一个变量名为a的数据存储,因而打印时是显示字符串的"a"。
所以将 ( '次机会!"a"' ) 改成   ('次机会!' , a ) 就可以了

傻眼貓咪 发表于 2021-9-27 18:18:15

三种方法:(三种字符串格式化)
a = "请输入密码:"

x = input(f"{a}") # 方法1:f-string 格式
y = input("%s"%a) # 方法2:% 格式
z = input("{}".format(a)) # 方法3:.format 格式
页: [1]
查看完整版本: python课后作业第九讲动动手第0题