題目描述
有一個整型偶數n(2<= n <=10000),你要做的是:先把1到n中的所有奇數從小到大輸出,再把所有偶數從小到大輸出
輸入
第一行由一個整數i(2<=i<=30)表示有i組測試數據,每一組由一個整型偶數n
輸出
第一行輸出所有奇數
第二行輸出所有偶數
輸入樣例
2
10
14
輸出樣例
1 3 5 7 9
2 4 6 8 10
1 3 5 7 9 11 13
2 4 6 8 10 12 14
解題思路
1.獲取輸入數據
2.判斷奇數或偶數
3.獲得對應的奇數偶數並依次輸出
1.獲取輸入數據
python中目前知道的獲取輸入的函數raw_input(),即可獲取輸入值;因此
i=raw_input() #獲取測試組數
此是則可以利用組數來進行循環獲取對應組數的具體數據,關鍵點:循環
循環可以使用for或者while
while i>0:
input_number.append(int(raw_input())#獲取輸入信息追加到input_number數組中
i=i-1
for循環:
for j in range(i)
input_number.append(int(raw_input())
2.判斷奇數或偶數
剛開始方法爲判斷和2求餘是否爲0然後來輸出,具體如下所示:
def print_numbers(n):
odd=[]#Q1:do not define ok,array list dictionary and .etc
even=[]
if n%2!=0:
print "The input is not an even integer"
else:
for i in range(1,n+1,1):#Q2:how to use for loop and range function
if i%2!=0:
odd.append(i)#Q3:what about append it's for string or array?
else:
even.append(i)
print odd
print even
由上則可以進行輸出結果,最終完整代碼:
#!/usr/bin/python
'''
example 3:
2<=n<=10000
one integer
input example:
2
10
14
output:
1 3 5 7 9
2 4 6 8 10
1 3 5 7 9 11 13
2 4 6 8 10 12 14
'''
def print_numbers(n):
odd=[]#Q1:do not define ok,array list dictionary and .etc
even=[]
if n%2!=0:
print "The input is not an even integer"
else:
for i in range(1,n+1,1):#Q2:how to use for loop and range function
if i%2!=0:
odd.append(i)#Q3:what about append it's for string or array?
else:
even.append(i)
print odd
print even
print "please input the test number"
i=int(raw_input())#Q3:how to input some other parameters with other function?
rows=i
input_number=[]
if i<2 or i>30:
print "this number is out of range"
else:
#print "There are %d test lines"%i
while(i>0):
#print i
input_number.append(int(raw_input()))
i=i-1
#print len(input_number)
i=0
while(i
輸出結果:
[root@sky python]# python 3_example.py
please input the test number
2
10
14
0
[1, 3, 5, 7, 9]
[2, 4, 6, 8, 10]
1
[1, 3, 5, 7, 9, 11, 13]
[2, 4, 6, 8, 10, 12, 14]
但是發現其中剛開始f對於for循環不是特別熟悉,且對於range函數使用不當,因此嘗試精簡
#!/usr/bin/python
'''
example 3:
2<=n<=10000
one integer
input example:
2
10
14
output:
1 3 5 7 9
2 4 6 8 10
1 3 5 7 9 11 13
2 4 6 8 10 12 14
'''
def print_numbers(n):
if n%2!=0:
print "The input is not an even integer"
else:
for i in range(1,n,2):
print i,
print
for i in range(2,n+1,2):
print i,
print "please input the test number"
i=int(raw_input())#Q3:how to input some other parameters with other function?
rows=i
input_number=[]
if i<2 or i>30:
print "this number is out of range"
else:
for j in range(i):
input_number.append(int(raw_input()))
for i in range(rows):
print_numbers(input_number[i])
print '\n'
利用for循環稍微精簡一些,但是過程還是很笨