相关疑难解决方法(0)

Python - 函数输出?

我有一个非常基本的问题.

假设我调用一个函数,例如,

def foo():
    x = 'hello world'
Run Code Online (Sandbox Code Playgroud)

如何让函数以这样的方式返回x,我可以将它用作另一个函数的输入或者在程序体内使用变量?

当我使用return并在另一个函数中调用该变量时,我得到一个NameError.

python function

10
推荐指数
2
解决办法
7万
查看次数

如何在python中创建一个带循环的元组

我想创建这个元组:

a=(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,5,5),(6,6,6),(7,7,7),(8,8,8),(9,9,9)
Run Code Online (Sandbox Code Playgroud)

我试过这个

a=1,1,1
for i in range (2,10):
    a=a,(i,i,i)
Run Code Online (Sandbox Code Playgroud)

但是,它会在每次迭代中在其他元组内创建一个元组.

谢谢

python for-loop tuples

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

将列表项从字符串转换为int(Python)

我有一个清单:

Student_Grades = ['56', '49', '63']
Run Code Online (Sandbox Code Playgroud)

我想将每个条目转换为整数,以便我可以计算平均值.

这是我的转换代码:

for i in Student_Grades:
    Student_Grades = [int(i)]
Run Code Online (Sandbox Code Playgroud)

我一直在收到错误

invalid literal for int() with base 10: '56,'
Run Code Online (Sandbox Code Playgroud)

我不知道该怎么办

以下是关于我如何获得Student_Grades Choose_File = str的完整代码(输入("请输入要读入的文件的确切名称(包括文件扩展名):"))

with open(Choose_File, "r") as datafile:
    counter = 1
    x = 1
    Student_Grades = []
    Read = datafile.readlines()
    info = Read[counter]
    Split_info = info.split()
    n = len(Split_info)


    while x < n:
        Student_Grades.append(Split_info[x])
        x = x + 2
Run Code Online (Sandbox Code Playgroud)

文本文件的格式为'MECN1234 56,MECN1357 49,MATH1111 63'

python int list python-3.x

8
推荐指数
3
解决办法
7万
查看次数

如何创建列表列表

我的Python代码每次循环时都会生成一个列表:

list = np.genfromtxt('temp.txt', usecols=3, dtype=[('floatname','float')], skip_header=1)
Run Code Online (Sandbox Code Playgroud)

但我想保存每一个 - 我需要一份清单吗?

所以我尝试过:

list[i] = np.genfromtxt('temp.txt', usecols=3, dtype=[('floatname','float')], skip_header=1)
Run Code Online (Sandbox Code Playgroud)

但Python现在告诉我"list"没有定义.我不确定如何定义它.另外,列表是否与数组相同?

谢谢!

python list

7
推荐指数
3
解决办法
12万
查看次数

Python:删除字符串列表中的多个字符

有这样的清单:

x = ['+5556', '-1539', '-99','+1500']
Run Code Online (Sandbox Code Playgroud)

如何以漂亮的方式删除+和 - ?

这有效,但我正在寻找更多的pythonic方式.

x = ['+5556', '-1539', '-99', '+1500']
n = 0
for i in x:
    x[n] = i.replace('-','')
    n += 1
n = 0
for i in x:
    x[n] = i.replace('+','')
    n += 1
print x
Run Code Online (Sandbox Code Playgroud)

编辑

+-并不总是处于领先地位; 他们可以在任何地方.

python string list

7
推荐指数
3
解决办法
5万
查看次数

如何将列表中的所有数字转换为负数?

我试图将正数列表转换为python 3.3.3中具有相同值的负数列表

例如[1,2,3]转入[-1,-2,-3]

我有这个代码:

xamount=int(input("How much of x is there"))
integeramount=int(input("How much of the integer is there"))
a=1
lista=[]
while(a<=integeramount):
    if(integeramount%a==0):
        lista.extend([a])
    a=a+1
listb=lista
print(listb)
[ -x for x in listb]
print(listb)
Run Code Online (Sandbox Code Playgroud)

当我希望一个为正,一个为负时,打印两个相同的列表.

python list negative-number python-3.x

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

Python - 字符串中的字符数增加1

我已经在python中搜索了如何做到这一点,我找不到答案.如果你有一个字符串:

>>> value = 'abc' 
Run Code Online (Sandbox Code Playgroud)

如何将字符串中的所有字符增加1?所以我正在寻找的输入是:

>>> value = 'bcd' 
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用ord和chr用一个角色做到这一点:

>>> value = 'a'
>>> print (chr(ord(value)+1)) 
>>> b
Run Code Online (Sandbox Code Playgroud)

ord()chr()只能采取一个字符.如果我使用上面的相同语句,并且字符串包含多个字符.我会得到错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: ord() expected a character, but string of length 3 found 
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

python chr ord

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

在`x = xy()`之后,为什么`x`变成了`None`而不是被修改(可能导致“AttributeError:'NoneType'对象没有属性”)?

如果您的问题作为此问题的重复项而被关闭,那是因为您有一些通用形式的代码

x = X()
# later...
x = x.y()
# or:
x.y().z()
Run Code Online (Sandbox Code Playgroud)

其中X是某种类型,它提供了y旨在z变异修改)对象(X类型的实例)的方法。这可以适用于:

  • 可变的内置类型,例如listdictsetbytearray
  • 标准库(尤其是 Tkinter 小部件)或第三方库提供的类。

这种形式的代码很常见,但并不总是错误的。问题的明显迹象是:

  • x.y().z()一样,会引发异常AttributeError: 'NoneType' object has no attribute 'z'

  • 有了x = x.y(),x就变成None, 而不是被修改的对象。这可能会被后来的错误结果发现,或者被像上面这样的异常(x.z()稍后尝试时)发现。

Stack Overflow 上有大量关于这个问题的现有问题,所有这些问题实际上都是同一个问题。之前甚至有多次尝试在特定上下文中涵盖同一问题的规范。然而,理解问题并不需要上下文,因此这里尝试一般性地回答:

代码有什么问题吗?为什么这些方法会这样,我们如何解决这个问题?


另请注意,当尝试使用 alambda或列表理解)来产生副作用时,会出现类似的问题。

同样明显的问题可能是由因其他原因返回的方法引起的None …

python attributeerror command-query-separation nonetype

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

Python - 如何在for循环中使用return语句?

首先,我想为糟糕的头衔道歉,但这是我能做的最好的.我试图拍摄很多截图,希望能让它更容易理解.

所以我正在研究一个不和谐的聊天机器人,现在正在开发一个可以作为待办事项清单的功能.我有一个命令将任务添加到列表中,它们存储在dict中.但是我的问题是以更易读的格式返回列表(见图片).

def show_todo():
    for key, value in cal.items():
        print(value[0], key)
Run Code Online (Sandbox Code Playgroud)

任务存储在dict被调用的中cal.但是为了让机器人实际发送消息,我需要使用return语句,否则它只是将它打印到控制台而不是实际的聊天(见图片).

def show_todo():
    for key, value in cal.items():
        return(value[0], key)
Run Code Online (Sandbox Code Playgroud)

以下是我尝试修复它的方法,但由于我使用了返回,for循环无法正常工作.

那么我该如何解决这个问题呢?如何使用return语句将其打印到聊天而不是控制台?

请参阅图片以便更好地理解

python return function python-3.x

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

为什么列表操作不返回结果列表?

我对导致这种情况的思维过程感兴趣.对我来说,一个相对新手,似乎阻碍了,因为它阻止了列表处理的"链接"(例如mylist.reverse().append('a string')[:someLimit]).我想可能是"那些人的力量"决定列表理解是一个更好的范例(一个有效的观点),所以不想鼓励其他方法 - 但是这似乎有悖常理,以防止一种直观的方法,即使更好存在替代品.

请注意,我不是在抱怨(我敢肯定有一个合理的理由,我在它是什么只是感兴趣!),也不是寻找一个解决方案(意见在这里非常具有启发性) -只是寻找一些情况下,并深入理解语言的设计过程.

python

5
推荐指数
2
解决办法
320
查看次数