小编jhu*_*ub1的帖子

动态地循环遍历Python中函数的函数列表

我想看看是否可以在函数中运行函数列表.我能找到的最接近的东西是循环整个模块.我只想使用预先选择的功能列表.

这是我原来的问题:

  1. 给定一个字符串,检查每个字母以查看是否满足5个测试中的任何一个.
  2. 如果至少1个字母通过检查,则返回True.
  3. 如果字符串中的所有字母都未通过检查,则返回False.
  4. 对于字符串中的每个字母,我们将检查这些函数:isalnum(),isalpha(),isdigit(),islower(),isupper()
  5. 每个测试的结果应该打印到不同的行.

样本输入

    qA2
Run Code Online (Sandbox Code Playgroud)

样本输出(必须打印到单独的行,如果至少一个字母通过则为True,否则为每个测试的所有字母都失败):

    True
    True
    True
    True
    True
Run Code Online (Sandbox Code Playgroud)

我写了一个测试.当然我可以写出5组不同的代码,但这看起来很难看.然后我开始想知道我是否可以循环完成他们要求的所有测试.

仅一个测试的代码:

    raw = 'asdfaa3fa'
    counter = 0
    for i in xrange(len(raw)):
        if raw[i].isdigit() == True: ## This line is where I'd loop in diff func's
            counter = 1
            print True
            break
    if counter == 0:
        print False
Run Code Online (Sandbox Code Playgroud)

我尝试使用所有测试运行循环失败:

    raw = 'asdfaa3fa'
    lst = [raw[i].isalnum(),raw[i].isalpha(),raw[i].isdigit(),raw[i].islower(),raw[i].isupper()]
    counter = 0
    for f in range(0,5):
        for i in xrange(len(raw)):
            if lst[f] == True: ## loop through f, which …
Run Code Online (Sandbox Code Playgroud)

python loops list

9
推荐指数
1
解决办法
1万
查看次数

尝试使用下划线和输入来理解Python循环

还有一个提示 - 如果有人在HackerRank上学习Python,那么知道这对于开始是至关重要的.

我正在尝试理解这段代码:

    stamps = set()
    for _ in range(int(input())):
        print('underscore is', _)
        stamps.add(raw_input().strip())
        print(stamps)
Run Code Online (Sandbox Code Playgroud)

输出:

    >>>2 
    underscore is 0
    >>>first
    set(['first'])
    underscore is 1
    >>>second
    set(['second', 'first'])
Run Code Online (Sandbox Code Playgroud)
  1. 我把2作为第一个原始输入.函数如何知道我只循环两次?这让我失望,因为它不是典型的......对于我在xrange(0,2)结构中.

  2. 起初我的想法是下划线重复shell中的最后一个命令.所以我在代码中添加了print语句来查看下划线的值......但是这些值只显示0和1,就像典型的循环结构一样.

我已经阅读了这篇文章,但仍然无法理解使用下划线的3个用法中的哪一个.

Python中单个下划线"_"变量的目的是什么?

我刚刚开始学习Python,所以很容易理解这些简单的解释!

python loops input

7
推荐指数
1
解决办法
6296
查看次数

在Python中一起使用IF,AND,OR和EQUAL操作数

我正在尝试创建一个函数,其中检查给定值(作为字符串传递)以查看数字位数是4还是6,并且它是一个数字.

我的第一个冲动是使用这段代码:

def number(x):
    if (len(x) == (4 or 6)) and x.isdigit():
        print "True"
    else:
        print "False"
Run Code Online (Sandbox Code Playgroud)

上面的代码只通过了下面的第一个测试......我不明白为什么它通过了这个,但没有其他测试:

number("1234")
Run Code Online (Sandbox Code Playgroud)

只有当我分离出len()函数时才能正常工作.

def number(x):
    if (len(x) == 4 or len(x) == 6) and x.isdigit():
        print "True"
    else:
        print "False"


## Checks
number("1234")
number("123456")
number("abcd")
number("abcdef")
number("1")
number("a")
Run Code Online (Sandbox Code Playgroud)

上面的代码通过了所有测试.

所以我的问题是:

  1. 这里发生了什么?
  2. 有没有办法为此编写更干净的代码?

谢谢你的帮助!

**这不是一个重复的问题,因为虽然这个问题与布尔运算符有相同的基本概念,但由于len(),isdigit()的使用以及如何最好地改进它的另一个问题(有人评论),问题本身是不同的返回的用法).但是,肯定会为另一个问题添加另一个视角.

python conditional boolean operand

6
推荐指数
2
解决办法
1万
查看次数

在 Pandas Python 中将列类型更改为 int - 没有警告

我的尝试: df['uid'] = df.uid.astype(int)

哪个有效...!然而,Python 不喜欢它:

尝试在 DataFrame 的切片副本上设置一个值。尝试使用 .loc[row_indexer,col_indexer] = value 代替

我的问题 - 如何执行这个简单代码的“最佳实践”是什么?

迄今为止的研究:

Pandas:更改列的数据类型

尝试在 DataFrame 警告中的切片副本上设置值

尝试:

  1. df[df['uid']].astype(int)

...一些链接说使用 iloc 但我不知道如何在这里使用...

python dataframe pandas

5
推荐指数
0
解决办法
4103
查看次数

标签 统计

python ×4

loops ×2

boolean ×1

conditional ×1

dataframe ×1

input ×1

list ×1

operand ×1

pandas ×1