鱼C论坛

 找回密码
 立即注册
查看: 2179|回复: 7

[已解决]python 第9课课后题

[复制链接]
发表于 2017-7-22 20:46:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
第0道题小甲鱼的答案是:
count = 3
password = 'FishC.com'

while count:
    passwd = input('请输入密码:')
    if passwd == password:
        print('密码正确,进入程序......')
        break
    elif '*' in passwd:
        print('密码中不能含有"*"号!您还有', count, '次机会!', end=' ')
        continue
    else:
        print('密码输入错误!您还有', count-1, '次机会!', end=' ')   
    count -= 1

为啥一定要用continue。我自己编的代码为啥就不用continue,不太理解这里continue的含义,

这是我的代码,好像差不多
answer = 'FishC.com'
times=3
while times:
    secret = input('请输入密码:')
    if '*' in secret:
        print('密码中不能含有"*"号!您还有', times,'机会!')
        
    else:
        if ('*' not in secret) and (answer!=secret):
            print('密码输入错误!您还有' , times-1,'次机会!')
            times=times-1
        else:
            print('密码正确,进入程序......')
            break
最佳答案
2017-7-23 12:13:55
我同时也有更高大上的代码:
1号:
  1. print("------------------------------猜数字------------------------------")
  2. temp = input("不妨猜一下我心里想的是哪一个数字:")
  3. guess = int(temp)
  4. if guess == 8:
  5.     print("你是我心中的蛔虫吗?")
  6.     print("哼,猜中了也没有奖励!")
  7. else:
  8.     print("猜错拉,我心里想的是8")
  9. print("游戏结束,")
复制代码

2号:
  1. import random
  2. secret = random.randint(1,10)
  3. #secret      = 1    #答案
  4. guess_times = 0    #猜的次数
  5. guess_max_times   = 2 # 最大次数

  6. print('------------------猜数字------------------')
  7. temp = input("不妨猜一下我现在心里想的是哪个数字(1-10):")
  8. while  temp.isdigit() == False:
  9.     print("输入格式不正确")
  10.     temp = input("请输入整数:")
  11. guess = int(temp)

  12. while guess != secret and guess_times < guess_max_times :

  13.     guess_times = guess_times + 1
  14.     guess_left_times = guess_max_times - guess_times + 1
  15.     if guess > secret:
  16.         print("猜错了, 大了大了~~~")
  17.     else:
  18.         print("猜错了, 小了小了~~~")
  19.     print("剩下",guess_left_times,"次机会")
  20.     temp = input("请重新输入吧:")
  21.     while temp.isdigit() == False:
  22.         print("输入格式不正确")
  23.         temp = input("请输入整数:")
  24.     guess = int(temp)


  25. if guess_times == 0:
  26.     print("真厉害一次猜对")

  27. if guess == secret:
  28.     print("你是我心里的蛔虫吗?!")
  29.     print("哼,猜中了也没有奖励!")
  30.     print("游戏结束")
  31. else:
  32.     print("答案是", secret)
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-7-22 20:54:59 | 显示全部楼层
本帖最后由 新手·ing 于 2017-7-22 20:58 编辑

不加continue count就会减一 这个作为提醒 所以continue
不一样的思路就是不一样
你这个代码乱糟糟的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-22 20:57:15 | 显示全部楼层
不用continue 打*就会消耗一次机会了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-22 20:58:42 | 显示全部楼层
continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-23 12:03:59 | 显示全部楼层
本帖最后由 黎明§末日 于 2017-7-23 12:11 编辑

你好,我这里有相对来说比较好理解的:
Python continue 语句跳出本次循环,而break跳出整个循环。
continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。
continue语句用在while和for循环中。
Python 语言 continue 语句语法格式如下:
  1. continue
复制代码

实例:
  1. for letter in 'Python':     # 第一个实例
  2.    if letter == 'h':
  3.       continue
  4.    print ('当前字母 :', letter)

  5. var = 10                    # 第二个实例
  6. while var > 0:              
  7.    var = var -1
  8.    if var == 5:
  9.       continue
  10.    print ('当前变量值 :', var)
  11. print ("Good bye!")
复制代码

以上实例执行结果:
  1. 当前字母 : P
  2. 当前字母 : y
  3. 当前字母 : t
  4. 当前字母 : o
  5. 当前字母 : n
  6. 当前变量值 : 9
  7. 当前变量值 : 8
  8. 当前变量值 : 7
  9. 当前变量值 : 6
  10. 当前变量值 : 4
  11. 当前变量值 : 3
  12. 当前变量值 : 2
  13. 当前变量值 : 1
  14. 当前变量值 : 0
  15. Good bye!
复制代码
continue 语句是一个删除的效果,他的存在是为了删除满足循环条件下的某些不需要的成分

  1. var = 10

  2. while var > 0:
  3.         var = var -1
  4.         if var == 5 or var == 8:
  5.                 continue
  6.         print ('当前值 :', var)
  7. print ("Good bye!")
复制代码

这里效果是去掉5和8,执行效果如下:
  1. 当前值 : 9
  2. 当前值 : 7
  3. 当前值 : 6
  4. 当前值 : 4
  5. 当前值 : 3
  6. 当前值 : 2
  7. 当前值 : 1
  8. 当前值 : 0
  9. Good bye!
复制代码



只打印0-10之间的奇数,可以用continue语句跳过某些循环:

  1. n = 0
  2. while n < 10:
  3.     n = n + 1
  4.     if n % 2 == 0:      # 如果n是偶数,执行continue语句
  5.         continue        # continue语句会直接继续下一轮循环,后续的print()语句不会执行
  6.     print(n)
复制代码

流程图:

流程图

流程图
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-23 12:13:55 | 显示全部楼层    本楼为最佳答案   
我同时也有更高大上的代码:
1号:
  1. print("------------------------------猜数字------------------------------")
  2. temp = input("不妨猜一下我心里想的是哪一个数字:")
  3. guess = int(temp)
  4. if guess == 8:
  5.     print("你是我心中的蛔虫吗?")
  6.     print("哼,猜中了也没有奖励!")
  7. else:
  8.     print("猜错拉,我心里想的是8")
  9. print("游戏结束,")
复制代码

2号:
  1. import random
  2. secret = random.randint(1,10)
  3. #secret      = 1    #答案
  4. guess_times = 0    #猜的次数
  5. guess_max_times   = 2 # 最大次数

  6. print('------------------猜数字------------------')
  7. temp = input("不妨猜一下我现在心里想的是哪个数字(1-10):")
  8. while  temp.isdigit() == False:
  9.     print("输入格式不正确")
  10.     temp = input("请输入整数:")
  11. guess = int(temp)

  12. while guess != secret and guess_times < guess_max_times :

  13.     guess_times = guess_times + 1
  14.     guess_left_times = guess_max_times - guess_times + 1
  15.     if guess > secret:
  16.         print("猜错了, 大了大了~~~")
  17.     else:
  18.         print("猜错了, 小了小了~~~")
  19.     print("剩下",guess_left_times,"次机会")
  20.     temp = input("请重新输入吧:")
  21.     while temp.isdigit() == False:
  22.         print("输入格式不正确")
  23.         temp = input("请输入整数:")
  24.     guess = int(temp)


  25. if guess_times == 0:
  26.     print("真厉害一次猜对")

  27. if guess == secret:
  28.     print("你是我心里的蛔虫吗?!")
  29.     print("哼,猜中了也没有奖励!")
  30.     print("游戏结束")
  31. else:
  32.     print("答案是", secret)
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-23 12:14:29 | 显示全部楼层
================================================
希望能帮上忙

如果帮上了
亲,请毫不犹豫的设为最佳答案
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-23 12:15:59 | 显示全部楼层
代码如果需要讲解请加我好友
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-5 18:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表