小编use*_*391的帖子

通过按Enter键退出而不阻塞.我该如何改进这种方法?

所以我一直在读一下如何通过用户按下回车键退出while循环,我想出了以下内容:

import sys, select, os

switch = 1
i = 1
while switch == 1:
    os.system('cls' if os.name == 'nt' else 'clear')
    print "I'm doing stuff. Press Enter to stop me!"
    print i
    while sys.stdin in select.select([sys.stdin], [], [], 0)[0]:
        line = raw_input()
        if not line:
            print "Finished! =]"
            switch = 0
        else:
            print "Finished! =]"
            switch = 0
    i = i+1
Run Code Online (Sandbox Code Playgroud)

有没有办法整理一下?特别是"if not line"和下面的"else"看起来很乱.它们可以组合成一个吗?使用"开关"的更好的替代方案?

最初,如果我键入一堆字符,然后点击输入,它就不会停止循环.我必须再次按回车键.if not和else组件旨在将其设置为在第一次按Enter时退出.

python loops enter input exit

4
推荐指数
1
解决办法
5720
查看次数

使用itertools按第二个值对连续元组进行分组

我有一组表格中的数据:

X1 = [(1,1),(3,1),(5,0),(3,0),(2,1)]
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何将它们分组,以便:

X2 = [[(1,1),(3,1)],[(5,0),(3,0)],[(2,1)]]
Run Code Online (Sandbox Code Playgroud)

即,它们按照每个元组中的第二个值以连续方式分组.

我知道这是这样的:

http://docs.python.org/2/library/itertools.html#itertools.groupby

python tuples python-itertools

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

如何编写可变数量的if语句?(蟒蛇)

很简单,如果x是从1开始的任何正整数,那么如何编写以下内容?

if x == 1:
    n = 1
elif 2 <= x <= 5:
    n = 2
elif 6 <= x <= 9:
    n = 3
elif 10 <= x <= 13:
    n = 4
elif 14 <= x <= 17:
    n = 5
Run Code Online (Sandbox Code Playgroud)

...等等...

python for-loop if-statement

-4
推荐指数
1
解决办法
93
查看次数

标签 统计

python ×3

enter ×1

exit ×1

for-loop ×1

if-statement ×1

input ×1

loops ×1

python-itertools ×1

tuples ×1