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