开发者社区> 问答> 正文

py初学者求问这个程序为何报错?报错

m=int(input())
n=int(input())
a=[[0]*n]*m
for i in range(m):
    a[i]=input.split('')
    for j in range(n):
        a[i][j]=int(a[i][j])
print a

报错信息:

Traceback (most recent call last):
  File "D:/pyProgram/test/helloworld.py", line 6, in <module>
    a[i]=input.split('')
AttributeError: 'builtin_function_or_method' object has no attribute 'split'

 

展开
收起
爱吃鱼的程序员 2020-06-06 14:53:10 641 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB
                        <p>翻译错误信息如下:<br>
    

    属性错误:'内置函数或方法'对象没有属性'split' 。

    方法 split() 的功能是 拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list)。

    下列代码创建了一个拥有两个(分别为英文、中文)字符串的列表 input。每个字符串的单词都以空格分开。对于此种场合,可以调用方法 split(' '), 以便将每个单词"切下来", 构成一个 二维 "单词/标点符号" 列表。 
    鉴于有 2 个 字符串,各有4个(单词、标点符号)元素,所以,最终构成的二维"单词/标点符号" 列表的维数是 2×4。

    m=int(input())
    n=int(input())
    a=[[0]*n]*m
    input=["Siberian huskies are affectionate","情深 不及 哈士奇 !"]
    for i in range(m):
        a[i]=input[i].split(' ')
    print(a)

    输出:

    D:\untitled\venv\Scripts\python.exe D:/pythonProject0/error1.py
    2
    4
    
    [['Siberian', 'huskies', 'are', 'affectionate'], ['情深', '不及', '哈士奇', '!']]

    不知楼主这段代码的意图是什么。若要创建一个 m×n 整型数组,元素是下限为 0,上线是 100 的随机数,那么代码可以写成:

    import random
    m=int(input())
    n=int(input())
    a=[[0]*n]*m
    for i in range(m):
        for j in range(n):
            a[i][j]=random.randint(0,100)
    print (a)

    输出:

    4
    5
    [[46, 88, 30, 60, 70], [46, 88, 30, 60, 70], [46, 88, 30, 60, 70], [46, 88, 30, 60, 70]]

    若要将 m×n 小数点型数组的元素都四舍五入取成整数,那么代码可以写成:

    a = [[1.5,2.4,3.7], [4.9,5.5,6.7]]
    print(a)
    print('元素四舍五入取成整数:')
    m = len(a)
    n = len(a[0])
    for i in range(m):
        for j in range(n):
            a[i][j]=round(a[i][j])
    print(a)

    输出:

    [[1.5, 2.4, 3.7], [4.9, 5.5, 6.7]]
    元素四舍五入取成整数:
    [[2, 2, 4], [5, 6, 7]]

     

                        <p>input是python的一个函数,这个函数没有split方法。</p>
    
                    
    
                            input() 是 python 的一个内置函数。 如果弃掉尾部的圆括号()从而就可成为一个变量的名称,如一个字符串的引用: input:input="变量名"。
                        
    
                        这里input是一个方法,它不能使用split,表示将字符串分割,而这里你将input输入都转成了int,所以m.split或者n.split都是错误的 
    
    2020-06-06 14:53:27
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Python 脚本速查手册 立即下载
Python第五讲——关于爬虫如何做js逆向的思路 立即下载
Shell 脚本速查手册 立即下载