鱼C论坛

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

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

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

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

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

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

第一个,数字反序
Examples:
Input: 21445 Output: 54421

Input: 145263 Output: 654321

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

Should return: 11

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

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

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

本帖被以下淘专辑推荐:

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

使用道具 举报

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

'''
'''
temp1 = [2, 4, 0, 100, 4, 11, 2602, 36]
temp2 = [160, 3, 1719, 19, 11, 13, -21]
def play(temp):
    count1,count2 = 0,0
    for each in temp:
        if each %2 == 0:
            if count1 == 2:
              for j in temp:
                  if j%2 != 0:
                      result = j
                      break
            else:
                count1 += 1
        else:
            if count2 == 2:
              for j in temp:
                  if j%2 == 0:
                      result = j
                      break
            else:
                count2 +=  1
    return result
print(temp1)
print(play(temp1))
print(temp2)
print(play(temp2))

'''


temp = input('please input your password:')
try:
    if temp.isdigit() == True and (len(temp) == 4 or len(temp) == 6):
        print('validate_pin("{}")'.format(temp), '== True')
    else:
        print('validate_pin("{}")'.format(temp), '== Flase')
except:
    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 | 显示全部楼层
第三题

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

使用道具 举报

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

def oddoreven(listx):
    

    if (listx[0]%2 + listx[1]%2 +listx[2]%2) >= 2:
        #进行奇数偶数队列判断,偶数队列做求余运算只能等于1
       
        for i in listx:
            if i%2 ==0:
                print(i)
            else:
                pass
    else:
        for i in listx:
            if i%2 == 1:
                print(i)
            else:
                pass

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

使用道具 举报

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


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

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

使用道具 举报

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


第二个你想复杂 了,其实就是返回奇数或者偶数中比较少的那一边的数字
def test2(numlist):
  a = [i for i in numlist if i%2 == 0]
  b = [i for i in numlist if i%2 != 0]
  c = a if len(a)<len(b) else b
  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 编辑

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

a = input("请输入一串数字:")
Reverse(a)

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

a = input("请输入一串数字:")
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位纯数字。
而不是随便是个几 ...


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

a = input("请输入一串数字:")
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
是否是满足4位,6位纯数字。
这个条件,所以是false啦

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

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

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

使用道具 举报

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

你确定你这个答案没改过?
def code(n):
    print('true' if n.isdigit() and len(n) == 4 and len(n) == 6 else 'false')

a = input("请输入一串数字:")
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, 2025-1-17 18:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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