鱼C论坛

 找回密码
 立即注册
查看: 1913|回复: 12

求助大神!急!!!

[复制链接]
发表于 2019-9-7 21:36:39 | 显示全部楼层 |阅读模式

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

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

x
我写的这组代码输出结果是:
Enter text: Anything
Enter primer: 2
Enter positive integer: 3
primer must be[1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23]

但是系统希望我的输出结果是:
Enter text: Anything
Enter primer: 2
Enter positive integer: 3
Primer must be 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, or 25

我的代码:
#list of valid primers
valid_primes=[1,3,5,7,9,11,15,17,19,21,23 or 25]
#lowercase character list
letters_l=list("abcdefghijklmnopqrstuvwxyz")
#uppercase character list
letters_u=list("abcdefghijklmnopqrstuvwxyz".upper())
#get inputs from user
text=input("Enter text: ")
primer=int(input("Enter primer: "))
number=int(input("Enter positive integer: "))
# check if primer is valid
if(primer not in valid_primes):
    print("primer must be"+ str(valid_primes))
else:
    shifted =""
    # loop through text
    for char in text:
        #if char is lowercase
        if char in letters_l:
            #get the position using the following logic
            pos=(primer*letters_l.index(char)+number)%26
            #add new character to shifted
            shifted = shifted + letters_l[pos]
        elif char in letters_u:
            #get the position using the following logic
            pos=(primer*letters_u.index(char)+number)%26
            #add new character to shifted
            shifted=shifted+letters_u[pos]
        else:
            shifted=shifted+char
    print(shifted)

求问大神,我的代码该怎么改,才能得到没有[ ]符号的结果?感谢!!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-9-7 21:41:39 | 显示全部楼层
这样:

  1. #list of valid primers
  2. valid_primes=[1,3,5,7,9,11,15,17,19,21,23 or 25]
  3. #lowercase character list
  4. letters_l=list("abcdefghijklmnopqrstuvwxyz")
  5. #uppercase character list
  6. letters_u=list("abcdefghijklmnopqrstuvwxyz".upper())
  7. #get inputs from user
  8. text=input("Enter text: ")
  9. primer=int(input("Enter primer: "))
  10. number=int(input("Enter positive integer: "))
  11. # check if primer is valid
  12. if(primer not in valid_primes):
  13.     print("primer must be " + str(valid_primes)[1:-1])
  14. else:
  15.     shifted =""
  16.     # loop through text
  17.     for char in text:
  18.         #if char is lowercase
  19.         if char in letters_l:
  20.             #get the position using the following logic
  21.             pos=(primer*letters_l.index(char)+number)%26
  22.             #add new character to shifted
  23.             shifted = shifted + letters_l[pos]
  24.         elif char in letters_u:
  25.             #get the position using the following logic
  26.             pos=(primer*letters_u.index(char)+number)%26
  27.             #add new character to shifted
  28.             shifted=shifted+letters_u[pos]
  29.         else:
  30.             shifted=shifted+char
  31.     print(shifted)
复制代码

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
dalishi11 + 5 + 5 + 3

查看全部评分

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

使用道具 举报

 楼主| 发表于 2019-9-7 21:55:32 | 显示全部楼层

感谢回复!
我运行了下得到的是
Enter text: Anything
Enter primer: 2
Enter positive integer: 3
primer must be 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25

但系统依然显示我不通过,提示应得到:
Enter text: Anything
Enter primer: 2
Enter positive integer: 3
Primer must be 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, or 25

请问您知道是怎么回事吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-7 21:57:18 From FishC Mobile | 显示全部楼层
Momo1258 发表于 2019-9-7 21:55
感谢回复!
我运行了下得到的是
Enter text: Anything

列表转化为字符串默认是带 [] 的,这里利用字符串切片去掉两旁的 []。不要忘记设置为最佳答案哦~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-7 22:00:01 | 显示全部楼层
zltzlt 发表于 2019-9-7 21:57
列表转化为字符串默认是带 [] 的,这里利用字符串切片去掉两旁的 []。不要忘记设置为最佳答案哦~

但系统依然说答案是不对的,您知道它这个or是怎么加上去的吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-7 22:03:01 From FishC Mobile | 显示全部楼层
Momo1258 发表于 2019-9-7 22:00
但系统依然说答案是不对的,您知道它这个or是怎么加上去的吗?

反正运行结果是对的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-7 22:03:53 | 显示全部楼层
zltzlt 发表于 2019-9-7 21:57
列表转化为字符串默认是带 [] 的,这里利用字符串切片去掉两旁的 []。不要忘记设置为最佳答案哦~

我第二次运行了修改过的代码后,得到的结果,没有25这个数字了。
Enter text: Anything
Enter primer: 2
Enter positive integer: 3
primer must be 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-7 22:06:43 From FishC Mobile | 显示全部楼层
Momo1258 发表于 2019-9-7 22:03
我第二次运行了修改过的代码后,得到的结果,没有25这个数字了。
Enter text: Anything
Enter primer:  ...

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

使用道具 举报

发表于 2019-9-7 22:16:38 From FishC Mobile | 显示全部楼层
把第 13 行改成这样:

print("primer must be " + str(valid_primes)[1:-1] + “, or 25”)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-12 22:25:01 | 显示全部楼层
为什么评不了分?

                               
登录/注册后可看大图
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-12 22:29:31 From FishC Mobile | 显示全部楼层
一个账号 发表于 2019-9-12 22:25
为什么评不了分?

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

使用道具 举报

发表于 2019-9-12 22:31:31 | 显示全部楼层
没有哇:

                               
登录/注册后可看大图
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-15 12:12:20 | 显示全部楼层
zltzlt 发表于 2019-9-7 21:57
列表转化为字符串默认是带 [] 的,这里利用字符串切片去掉两旁的 []。不要忘记设置为最佳答案哦~

那啥,用
  1. ', '.join
复制代码
不好么…
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-18 02:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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