2011-10-21 88 views
8

Xin chào Tôi mới sử dụng python và muốn nhập dữ liệu vào một mảng. Tài liệu python không được mô tả kỹ về mảng. Ngoài ra tôi nghĩ rằng tôi có một số trục trặc với vòng lặp cho trong python.Cách nhập dữ liệu vào một mảng + PYTHON?

Tôi đưa ra các đoạn mã C mà tôi muốn trong python:

C Code:

printf("Enter howmany elements you want: "); 
scanf("%d",&n); 
printf("Enter the numbers in the array: ") 
for(i=0;i<n;i++) 
scanf("%d",&arr[i]); 

Trả lời

9

raw_input là helper của bạn ở đây. Từ tài liệu -

Nếu có đối số nhắc, nó được ghi vào đầu ra tiêu chuẩn không có dấu dòng mới. Hàm này sau đó đọc một dòng từ đầu vào, chuyển đổi nó thành một chuỗi (tước một dòng mới) và trả về . Khi đọc EOF, EOFError được nâng lên.

Vì vậy, mã của bạn về cơ bản sẽ trông như thế này.

num_array = list() 
num = raw_input("Enter how many elements you want:") 
print 'Enter numbers in array: ' 
for i in range(int(num)): 
    n = raw_input("num :") 
    num_array.append(int(n)) 
print 'ARRAY: ',num_array 

P.S: Tôi đã nhập tất cả các tay miễn phí này. Cú pháp có thể sai nhưng phương pháp luận là chính xác. Cũng có một điều cần lưu ý là, raw_input không làm bất cứ việc kiểm tra loại, vì vậy bạn cần phải cẩn thận ...

+0

bạn vui lòng giải thích dòng đầu tiên chỉ – user1000368

+1

@Srikar: Tìm hiểu bạn sẽ ... –

+0

dòng đầu tiên là gì? Tôi đã thêm thông tin vào câu trả lời của mình. những gì exacytly bạn không hiểu? –

2
data = [] 
n = int(raw_input('Enter how many elements you want: ')) 
for i in range(0, n): 
    x = raw_input('Enter the numbers into the array: ') 
    data.append(x) 
print(data) 

Bây giờ điều này không làm bất cứ kiểm tra lỗi và nó lưu trữ dữ liệu như là một chuỗi.

+0

Cảm ơn Taylor, thật không may với số dư thấp này tôi không thể upvote câu trả lời của bạn :( – user1000368

1
arr = [] 
elem = int(raw_input("insert how many elements you want:")) 
for i in range(0, elem): 
    arr.append(int(raw_input("Enter next no :"))) 
print arr 
10

Nếu số phần tử trong mảng không nhất định, bạn có thể lựa chọn sử dụng các danh sách hiểu như:

str_arr = raw_input().split(' ') //will take in a string of numbers separated by a space 
arr = [int(num) for num in str_arr] 
4

Bạn muốn điều này - nhập N và sau đó đi số N của các yếu tố. tôi đang xem xét trường hợp đầu vào của bạn chỉ là như thế này

5 
2 3 6 6 5 

có điều này theo cách này trong python 3.x (để sử dụng python 2.x raw_input() thay vì nếu đầu vào())

n = int(input()) 
arr = input() # takes the whole line of n numbers 
l = list(map(int,arr.split(' '))) # split those numbers with space(becomes ['2','3','6','6','5']) and then map every element into int (becomes [2,3,6,6,5]) 
Các vấn đề liên quan