相关疑难解决方法(0)

python生成段函数

用python生成分段函数的正确方法是什么?

例如:

在此处输入图片说明

python

0
推荐指数
1
解决办法
56
查看次数

检查Python中的数字是否不在范围内

好的,所以我现在有Python代码,它做了这样的事情:

if plug in range(1, 5):
    print "The number spider has disappeared down the plughole"
Run Code Online (Sandbox Code Playgroud)

但我真正想要做的是检查的数量并不在范围内.我用Google搜索并查看了Python文档但我找不到任何内容.有任何想法吗?

附加数据:运行此代码时:

if not plug in range(1, 5):
    print "The number spider has disappeared down the plughole"
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Traceback (most recent call last):
    File "python", line 33, in <module>
IndexError: list assignment index out of range
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

if plug not in range(1,5):
     print "The number spider has disappeared down the plughole"
Run Code Online (Sandbox Code Playgroud)

哪个返回了相同的错误.

python range

-3
推荐指数
2
解决办法
4万
查看次数

为什么没有为浮点数优化Python 3范围对象?

从前一个问题跳出来,我问了一会儿:

为什么Python 3中的1000000000000000范围(1000000000000001)如此之快?

如果你这样做:

1000000000000000.0 in range(1000000000000001)
Run Code Online (Sandbox Code Playgroud)

...很明显,range尚未进行优化以检查floats是否在指定范围内.

我想我明白,预期的目的rangeint仅使用s - 所以你不能,例如,做这样的事情:

1000000000000 in range(1000000000000001.0)
# error: float object cannot be interpreted as an integer
Run Code Online (Sandbox Code Playgroud)

或这个:

1000000000000 in range(0, 1000000000000001, 1.0) 
# error: float object cannot be interpreted as an integer
Run Code Online (Sandbox Code Playgroud)

然而,无论出于何种原因,决定允许这样的事情:

1.0 in range(1)
Run Code Online (Sandbox Code Playgroud)

似乎很明显1.0(及1000000000000.0以上)没有被强制转换为ints,因为那时int优化也适用于那些.

我的问题是,为什么不一致,为什么没有优化floats?或者,或者,为什么上述代码不会产生与前面示例相同的错误的原因是什么?

除了优化ints 之外,这似乎是一个明显的优化.我猜测有一些细微的问题妨碍了这种优化的干净实施,或者有一些理由说明为什么你实际上不想包含这样的优化.或者两者都可能.

编辑:为了澄清这里的问题,以下所有语句都进行了评估False:

3.2 in range(5)
'' in range(1)
[] in range(1) …
Run Code Online (Sandbox Code Playgroud)

python optimization range python-3.x

-3
推荐指数
1
解决办法
163
查看次数

为什么这个for循环打印两次?

我有这个程序:

print()
print ('------MENU------')
print ('1. Welcome to Python')
print ('2. Python is fun')
print ('3. This could be a challenge')
print ('4. Exit')
print()
choice = int(input('please enter a choice between 1 to 4: '))
for choice in (1,5):
      if choice ==1:
            print ('Welcome to python')
      elif choice == 2:
            print ('Python is fun')
      elif choice == 3:
            print ('This could be a challenge')
      else:
            break
Run Code Online (Sandbox Code Playgroud)

它应该首先打印MENU然后要求输入一个整数.我的问题是为什么每次输入1到3之间的整数时它会打印两次?

python for-loop

-5
推荐指数
1
解决办法
89
查看次数

标签 统计

python ×4

range ×2

for-loop ×1

optimization ×1

python-3.x ×1