题目描述
有一个整型偶数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循环稍微精简一些,但是过程还是很笨