鱼C论坛

 找回密码
 立即注册
查看: 4986|回复: 36

[技术交流] 今日三题 (伪装)

[复制链接]
发表于 2017-4-23 21:11:47 | 显示全部楼层 |阅读模式

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

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

x
休息天了,没人出题了。我来出点简单的吧!
因为简单,所以多出几个。要求嘛,简洁!
相信周日这简单,快乐的题目,大家都是会的。


  1. 第一个,数字反序
  2. Examples:
  3. Input: 21445 Output: 54421

  4. Input: 145263 Output: 654321

  5. Input: 1254859723 Output: 9875543221
复制代码

  1. 第二个,选出与其他数字奇偶性不同的奇(偶)数。
  2. [2, 4, 0, 100, 4, 11, 2602, 36]

  3. Should return: 11

  4. [160, 3, 1719, 19, 11, 13, -21]

  5. Should return: 160
复制代码

  1. 因为银行的密码通常是4位或者6位纯数字,那么请你写个函数,来判断输入的字符串是否符合4位或者6位纯数字要求。
  2. validate_pin("1234") == True
  3. validate_pin("12345") == False
  4. validate_pin("a234") == False
复制代码


游客,如果您要查看本帖隐藏内容请回复

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-4-24 18:02:21 | 显示全部楼层
  1. print('每日一问32')
  2. '''
  3. temp = input('Input:')
  4. list1 = []
  5. for i in temp:
  6.     list1.append(i)
  7. list1.sort()
  8. list1.reverse()
  9. #或者用一句list.sort(reverse=True)
  10. print('Output:', ''.join(list1))

  11. '''
  12. '''
  13. temp1 = [2, 4, 0, 100, 4, 11, 2602, 36]
  14. temp2 = [160, 3, 1719, 19, 11, 13, -21]
  15. def play(temp):
  16.     count1,count2 = 0,0
  17.     for each in temp:
  18.         if each %2 == 0:
  19.             if count1 == 2:
  20.               for j in temp:
  21.                   if j%2 != 0:
  22.                       result = j
  23.                       break
  24.             else:
  25.                 count1 += 1
  26.         else:
  27.             if count2 == 2:
  28.               for j in temp:
  29.                   if j%2 == 0:
  30.                       result = j
  31.                       break
  32.             else:
  33.                 count2 +=  1
  34.     return result
  35. print(temp1)
  36. print(play(temp1))
  37. print(temp2)
  38. print(play(temp2))

  39. '''


  40. temp = input('please input your password:')
  41. try:
  42.     if temp.isdigit() == True and (len(temp) == 4 or len(temp) == 6):
  43.         print('validate_pin("{}")'.format(temp), '== True')
  44.     else:
  45.         print('validate_pin("{}")'.format(temp), '== Flase')
  46. except:
  47.     print('validate_pin("{}")'.format(temp), '== Flase')
复制代码


代码冗长,已经半个月没写过代码了

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
ooxx7788 + 1 + 1 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-24 19:27:35 | 显示全部楼层
谢谢你,我最近学业有些繁重,可能一段时间上不了论坛了。论坛靠你了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-29 18:10:16 | 显示全部楼层

第一题

temp = input('inputmuber:')
list1 = list(temp)
list1.sort(reverse=True)
print(list1)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-29 18:12:33 | 显示全部楼层
我觉得这几道题挺好的,大家多练习啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-29 18:42:37 | 显示全部楼层
@gopythoner 有时间来坐坐第二三题吧,我做的调试老不成功
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-29 23:11:57 | 显示全部楼层
第三题


  1. def validate_pin(num):
  2.     if num.isdigit() and (len(num) == 4 or len(num) == 6):
  3.         return True
  4.     else:
  5.         return False
  6. num = input('请输入密码:')
  7. print(validate_pin(num))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-1 17:22:42 | 显示全部楼层
  1. list1 = [2, 4, 0, 100, 4, 11, 2602, 36]
  2. list2 = [160, 3, 1719, 19, 11, 13, -21]

  3. def oddoreven(listx):
  4.    

  5.     if (listx[0]%2 + listx[1]%2 +listx[2]%2) >= 2:
  6.         #进行奇数偶数队列判断,偶数队列做求余运算只能等于1
  7.       
  8.         for i in listx:
  9.             if i%2 ==0:
  10.                 print(i)
  11.             else:
  12.                 pass
  13.     else:
  14.         for i in listx:
  15.             if i%2 == 1:
  16.                 print(i)
  17.             else:
  18.                 pass

  19. oddoreven(list1)
  20. oddoreven(list2)
  21.    
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-2 10:19:13 | 显示全部楼层
本帖最后由 gopythoner 于 2017-5-2 10:23 编辑
有益 发表于 2017-4-29 18:42
@gopythoner 有时间来坐坐第二三题吧,我做的调试老不成功


哇,还有人@我呢,来罗
  1. def test1(num):
  2.   newnum = int(str(num)[::-1])
  3.   return newnum
  4.   
  5. def test2(numlist):
  6.   a = [i for i in numlist if i%2 == 0]
  7.   b = [i for i in numlist if i%2 != 0]
  8.   c = a if len(a)<len(b) else b
  9.   return c

  10. # 两个参数,前面一个是密码,后面一个是密码长度,默认为6  
  11. def test3(password,long=6):
  12.   if password.isdigit() and len(password)== long:
  13.     print("True")
  14.   else:
  15.     print("False")
  16.   
  17. 测试:   
  18. print(test1(123456))
  19. print(test2([2, 4, 0, 100, 4, 11, 2602, 36]))
  20. test3("A23456"),test3("123456"),test3("12345")
  21. 输出:
  22. 654321
  23. [11]
  24. False
  25. True
  26. False
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-5-2 10:21:09 | 显示全部楼层


第二个你想复杂 了,其实就是返回奇数或者偶数中比较少的那一边的数字
  1. def test2(numlist):
  2.   a = [i for i in numlist if i%2 == 0]
  3.   b = [i for i in numlist if i%2 != 0]
  4.   c = a if len(a)<len(b) else b
  5.   return c
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2017-5-2 11:13:27 | 显示全部楼层
gopythoner 发表于 2017-5-2 10:21
第二个你想复杂 了,其实就是返回奇数或者偶数中比较少的那一边的数字

厉害!想的好!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-12 09:45:49 | 显示全部楼层
学习下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-12 11:05:26 | 显示全部楼层
厉害了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-12 14:58:17 | 显示全部楼层
本帖最后由 china25qd 于 2017-6-12 15:07 编辑

先做个简单的方便看看帖子:
  1. def Reverse(n):
  2.     i = len(n)
  3.     while i:
  4.         i -= 1
  5.         print(n[i], end = '')

  6. a = input("请输入一串数字:")
  7. Reverse(a)
复制代码


第三个也挺简单的:
  1. def code(n):
  2.     print(n.isdigit())
  3.     print("长度为:%d" % (len(n)))

  4. a = input("请输入一串数字:")
  5. code(a)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-12 15:49:35 | 显示全部楼层
本帖最后由 ooxx7788 于 2017-6-12 15:53 编辑
china25qd 发表于 2017-6-12 14:58
先做个简单的方便看看帖子:


函数尽量已return形式返回值。
第三题要求的也是判断,是否是满足4位,6位纯数字。
而不是随便是个几位的数字就可以。

而且第一题对吗?你这个好像也只实现了反序而已,没有排序吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-12 16:01:47 | 显示全部楼层
本帖最后由 china25qd 于 2017-6-12 16:05 编辑
ooxx7788 发表于 2017-6-12 15:49
函数尽量已return形式返回值。
第三题要求的也是判断,是否是满足4位,6位纯数字。
而不是随便是个几 ...


第一题的需求不是要反序吗?
第三题我改下:
  1. def code(n):
  2.     print('true' if n.isdigit() and len(n) == 4 and len(n) == 6 else 'false')

  3. a = input("请输入一串数字:")
  4. code(a)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-12 16:22:02 | 显示全部楼层
china25qd 发表于 2017-6-12 16:01
第一题的需求不是要反序吗?
第三题我改下:

仔细看题,第一题,我要求的是从大到小排序数字排序给定数字。
对于你第二次给定的第三题答案,依然是错误的。请自己测试自己的代码对不对。
QQ图片20170612162059.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-12 16:35:46 | 显示全部楼层
本帖最后由 china25qd 于 2017-6-12 16:48 编辑
ooxx7788 发表于 2017-6-12 16:22
仔细看题,第一题,我要求的是从大到小排序数字排序给定数字。
对于你第二次给定的第三题答案,依然是错 ...


是啊,这就对啦,你输入的是4个数字吗?有没有空格?我这边打印出来的是true
我去跑了下,这是打印出的结果:
code.png
  1. 是否是满足4位,6位纯数字。
复制代码

这个条件,所以是false啦

至于第一题,你就不能说降序嘛~
反序当然是输入“123小甲鱼”,输出“鱼甲小321”啦!

(好了不和你究啦~请把需求写严谨,不要模棱两可,不要有歧义,不要自作主张造出反人类的词汇,
像lz这样写需求,在工作的时候会被程序拍砖的!)

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-12 16:59:43 | 显示全部楼层
china25qd 发表于 2017-6-12 16:35
是啊,这就对啦,你输入的是4个数字吗?有没有空格?我这边打印出来的是true
我去跑了下,这是打印出 ...

你确定你这个答案没改过?

  1. def code(n):
  2.     print('true' if n.isdigit() and len(n) == 4 and len(n) == 6 else 'false')

  3. a = input("请输入一串数字:")
  4. code(a)
复制代码


你给的这个答案里面true和false都是小写,然后你给出的答案图片里面是大写的True。你跟我说这是你的答案?
而你代码的错误在于逻辑连接符的错误,怎么可能有一个字符串能同时满足len=4同时len=6呢。我不知道你搞什么东西。
164735swotr3k647zoohp6.png

第一题的问题,我给出了明确的案例,下面所有的人都能看得懂,就到你这里看不懂,我不知道是我的问题,还是你的问题。你想怎样就怎样吧,不用回复我了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-12 17:01:26 | 显示全部楼层
其实就第三题而言,最好的办法是
"^code:[0-9]{4}$" || "^code:[0-9]{6}$"
如果python能解析的话……就简单了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-28 18:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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