Python中数字的每一位都要平方?

Python中数字的每一位都要平方?,python,python-3.x,numbers,Python,Python 3.x,Numbers,在Python中对数字的每一位进行平方运算? 如果我们通过函数运行9119,811181将出现,因为92是81,12是1。 写一段代码,但这不起作用 def sq(num): words = num.split() # split the text for word in words: # for each word in the line: print(word**2) # print the word num = 9119 sq(num) 我们可以使用list分割字符串中的每

在Python中对数字的每一位进行平方运算? 如果我们通过函数运行9119,811181将出现,因为92是81,12是1。 写一段代码,但这不起作用

def sq(num):
words = num.split()  # split the text
for word in words:  # for each word in the line:
    print(word**2) # print the word

num = 9119
sq(num)

我们可以使用list分割字符串中的每个字符,也可以使用print中的end来表示打印输出中的delimiter

def sq(num):
    words = list(str(num)) # split the text
    for word in words:  # for each word in the line:
        print(int(word)**2, end="") # print the word

num = 9119
sq(num)
或者

return ''.join(str(int(i)**2) for i in str(num))

我们还可以支持输入负数和零。使用算术运算符(%and//)进行娱乐

def平方位(num):
num=str(num)
结果=“”
对于num中的i:
结果+=str(int(i)**2)
返回整数(结果)
var=平方位(123)
打印(var)

那么您应该修复它。如果您想要更详细的答案,请提供更详细的问题。(并修复代码缩进。)
split
只能在字符串上调用,不能在数字上调用。此外,它还通过空格将字符串拆分为单词;
9119
中没有空格,即使您将其转换为字符串
'9119'
。如果您需要数字中的每个字符,您可以使用:
for char in str(num)
(然后您必须将每个字符转换回一个数字并将其平方),如果您想循环一个数字中的所有数字,有两种方法:您可以使用
str
将其转换为字符串,然后直接循环(不要调用
split
——同样,没有空格,字符串已经是一个字符序列),或者使用
/
%
(或
divmod
)进行算术运算。不,不是。数字没有
split
方法;只有字符串(和字节)do.Pro-tip、.join()接受iterable。生成器表达式是可移植的,因此无需使用列表转换进行包装。感谢提示:)
def sq(num):
    z = ''.join(str(int(i)**2) for i in str(num))
    return int(z)
def sq(num):
    num = abs(num)                             #Handle negative numbers
    output = str((num % 10)**2)                #Process rightmost digit 

    while(num > 0):        
        num //= 10                             #Remove rightmost digit       
        output = str((num % 10)**2) + output   #Add squared digit to output
    print(output)