''' 程序31】 题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母。 1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。 2.程序源代码: ''' from sys import stdin letter = stdin.read(1) stdin.flush() while letter != 'Y': if letter == 'S': print 'please input second letter' letter = stdin.read(1) stdin.flush() if letter == 'a': print 'Saturday' elif letter == 'u': print 'Sunday' else: print 'data error' break elif letter == 'F': print 'Friday' break elif letter == 'M': print 'Monday' #break elif letter == 'T': print 'please input second letter' letter = stdin.read(1) stdin.flush() if letter == 'u': print 'Tuesday' elif letter == 'h': print 'Thursday' else: print 'data error' break elif letter == 'W': print 'Wednesday' else: print 'data error' letter = stdin.read(1) stdin.flush()
''' 【程序36】 题目:求100之内的素数 1.程序分析: 2.程序源代码: ''' from math import sqrt if __name__ == '__main__': N = 100 a = range(0,N) for i in range(2,int(sqrt(N))): for j in range(i + 1,N): if (a[i] != 0) and (a[j] != 0): if a[j] % a[i] == 0: a[j] = 0 print for i in range(2,N): if a[i] != 0: print "%5d" % a[i] if (i - 2) % 10 == 0: print
''' 【程序37】 题目:对10个数进行排序 1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换, 下次类推,即用第二个元素与后8个进行比较,并进行交换。 2.程序源代码: ''' if __name__ == "__main__": N = 10 # input data print 'please input ten num:\n' l = [] for i in range(N): l.append(int(raw_input('input a number:\n'))) print for i in range(N): print l[i] print # sort ten num for i in range(N - 1): min = i for j in range(i + 1,N): if l[min] > l[j]:min = j l[i],l[min] = l[min],l[i] print 'after sorted' for i in range(N): print l[i]
''' 【程序38】 题目:求一个3*3矩阵对角线元素之和 1.程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。 2.程序源代码: ''' if __name__ == '__main__': a = [] sum = 0.0 for i in range(3): a.append([]) for j in range(3): a[i].append(float(raw_input("input num:\n"))) for i in range(3): sum += a[i][i] print sum
''' 【程序39】 题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。 1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后 此元素之后的数,依次后移一个位置。 2.程序源代码: ''' if __name__ == '__main__': # 方法一 a = [1,4,6,9,13,16,19,28,40,100,0] print 'original list is:' for i in range(len(a)): print a[i] number = int(raw_input("insert a new number:\n")) end = a[9] if number > end: a[10] = number else: for i in range(10): if a[i] > number: temp1 = a[i] a[i] = number for j in range(i + 1,11): temp2 = a[j] a[j] = temp1 temp1 = temp2 break for i in range(11): print a[i] # 方法二 # insrt another number number = int(raw_input('input a number:\n')) if number > a[len(a) - 1]: a.append(number) else: for i in range(len(a)): if a[i] > number: a.insert(i,number) print a
''' 【程序40】 题目:将一个数组逆序输出。 1.程序分析:用第一个与最后一个交换。 2.程序源代码: ''' if __name__ == '__main__': a = [9,6,5,4,1] N = len(a) print a for i in range(len(a) / 2): a[i],a[N - i - 1] = a[N - i - 1],a[i] print a
Python重写C语言程序100例--Part5,布布扣,bubuko.com
时间: 2024-10-27 13:09:25