Python1 题目:打印出所有的”水仙花数,所谓”水仙花数“是指一个三位数,其各位数字立方和等于该数 本身。例如:153是一个水仙花数”,因为153=1的三次方+5的三次方+3的三次方。 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 程序源代码: #!/usr/bin/python #-*coding:UTF-8 -* for n in range(100,1000): 1=n/100 j=n/10810 k=n310 if n--+++k++3; print n 以上实例输出结果为: 370 371 407 Python练习实例14 题目:将一个正整数分解质因数。例如:输入90,打印出90=2335。 程序分析:对进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于,则说明分解质因数的过程已经结束,打印出即可。 (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n, 重复执行第一步。 (③)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 程序源代码: !/usr/bin/python #-*-coding:UTF-8-*-
Python 100 例 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数 本身。例如:153 是一个"水仙花数",因为 153=1 的三次方+5 的三次方+3 的三次方。 程序分析:利用 for 循环控制 100-999 个数,每个数分解出个位,十位,百位。 程序源代码: #!/usr/bin/python # -*- coding: UTF-8 -*- for n in range(100,1000): i = n / 100 j = n / 10 % 10 k = n % 10 if n == i ** 3 + j ** 3 + k ** 3: print n 以上实例输出结果为: 153 370 371 407 Python 练习实例 14 Python 100 例 题目:将一个正整数分解质因数。例如:输入 90,打印出 90=2*3*3*5。 程序分析:对 n 进行分解质因数,应先找到一个最小的质数 k,然后按下述步骤完成: (1)如果这个质数恰等于 n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果 n<>k,但 n 能被 k 整除,则应打印出 k 的值,并用 n 除以 k 的商,作为新的正整数你 n, 重复执行第一步。 (3)如果 n 不能被 k 整除,则用 k+1 作为 k 的值,重复执行第一步。 程序源代码: #!/usr/bin/python # -*- coding: UTF-8 -*-
def reduceNum(n): print'()='.format (n), if not isinstance(n,int)or n <=0 print'请输入一个正确的数字!' exit(0) elif n in Ill print ()'.format (n) whi1 en not in[1]:幸循环保证递归 for index in xrange(2,n+1): ifn号index"0: n/=index#n等于n/index if n==1: print index else:#index一定是素数 print'()*.format (index), break educeNum(90) 以上实例输出结果为: 90=2*3*3*5 1002*2*5+5 Python练习实例15 1Phon100例 题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的 用B表示,60分以下的用C表示。 程序分析:程序分析:(a>b)?a:b这是条件运算符的基本例子。 程序源代码: :/usr/bin/python 量-*-coding:UTF-8-*- score =int(raw_input('input score:\n')) if score >90: grade='A elif score >-60 grade "'B
def reduceNum(n): print '{} = '.format(n), if not isinstance(n, int) or n <= 0 : print '请输入一个正确的数字 !' exit(0) elif n in [1] : print '{}'.format(n) while n not in [1] : # 循环保证递归 for index in xrange(2, n + 1) : if n % index == 0: n /= index # n 等于 n/index if n == 1: print index else : # index 一定是素数 print '{} *'.format(index), break reduceNum(90) reduceNum(100) 以上实例输出结果为: 90 = 2 * 3 * 3 * 5 100 = 2 * 2 * 5 * 5 Python 练习实例 15 Python 100 例 题目:利用条件运算符的嵌套来完成此题:学习成绩>=90 分的同学用 A 表示,60-89 分之间的 用 B 表示,60 分以下的用 C 表示。 程序分析:程序分析:(a>b)?a:b 这是条件运算符的基本例子。 程序源代码: #!/usr/bin/python # -*- coding: UTF-8 -*- score = int(raw_input('input score:\n')) if score >= 90: grade = 'A' elif score >= 60: grade = 'B
else: grade='c print 'd belongs to &s'(score,grade) 以上实例输出结果为: input score: 100 100 belongs to A Python练习实例16 净on10级 题目:输出指定格式的日期。 程序分析:使用datetime模块。 程序源代码: !/usr/bin/python -+-coding:UTF-8-+- import datetime if__name=='main': 寺输出今日日期,格式为dd/m/yyy:更多选项可以查看atrftime()方法 print(datetime.date.today().strftime('d//)) 手创建日期对象 miyazakiBirthDate datetime.date(1941,1,5) print (mivazakiBirthDate.strftime('d/m/Y')) ·日期算术运算 miyazakiBirthNextDay-miyazakiBirthDate datetime.timedelta(days-1) print(miyazakiBirthNextDay.strftime('sd/8m/8Y')) 日期替换 miyazakiFirstBirthday miyazakiBirthDate.replace(year=miyazakiBirthDate year 1)
else: grade = 'C' print '%d belongs to %s' % (score,grade) 以上实例输出结果为: input score: 100 100 belongs to A Python 练习实例 16 Python 100 例 题目:输出指定格式的日期。 程序分析:使用 datetime 模块。 程序源代码: #!/usr/bin/python # -*- coding: UTF-8 -*- import datetime if __name__ == '__main__': # 输出今日日期,格式为 dd/mm/yyyy。更多选项可以查看 strftime() 方法 print(datetime.date.today().strftime('%d/%m/%Y')) # 创建日期对象 miyazakiBirthDate = datetime.date(1941, 1, 5) print(miyazakiBirthDate.strftime('%d/%m/%Y')) # 日期算术运算 miyazakiBirthNextDay = miyazakiBirthDate + datetime.timedelta(days=1) print(miyazakiBirthNextDay.strftime('%d/%m/%Y')) # 日期替换 miyazakiFirstBirthday = miyazakiBirthDate.replace(year=miyazakiBirthDate. year + 1)
print(miyazakiFirstBirthday.strftime('d/m/)) 以上实例输出结果为: 21/10/2015 05/01/194 06/01/1941 05/01/1942 Python练习实例17 净0n10@ 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 程序分析:利用while语句,条件为输入的字符不为n。 程序源代码: !/usr/bin/python -*-coding:UTF-8-+- import string raw_input ('input a string:\n') letters -0 space =0 digit-0 others =0 for c in a: if c.isalpha(): letters t elif c.isspace(): space +=1 elif c.isdigit(): digit +=1 els others +1 print 'char -d,space =d,digit =sd,others =ad'(letters,space,digit,oth ers) 以上实例输出结果为: input a string:
print(miyazakiFirstBirthday.strftime('%d/%m/%Y')) 以上实例输出结果为: 21/10/2015 05/01/1941 06/01/1941 05/01/1942 Python 练习实例 17 Python 100 例 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 程序分析:利用 while 语句,条件为输入的字符不为'\n'。 程序源代码: #!/usr/bin/python # -*- coding: UTF-8 -*- import string s = raw_input('input a string:\n') letters = 0 space = 0 digit = 0 others = 0 for c in s: if c.isalpha(): letters += 1 elif c.isspace(): space += 1 elif c.isdigit(): digit += 1 else: others += 1 print 'char = %d,space = %d,digit = %d,others = %d' % (letters,space,digit,oth ers) 以上实例输出结果为: input a string:
runoob char =6,space 0,digit-0,others=0 Python练习实例18 方phon100位 题目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此 时共有5个数相加),几个数相加有键盘控制。 程序分析:关键是计算出每一项的值。 程序源代码: /usr/bin/python -*-coding:UTF-8-*- n=0 sn=[1 n=int(raw_input ('n =:In')) a-int(raw_input('a:n')) for count in range(n) TnTn a a e 10 sn.append(Tn) print Tn Sn reduce(lambda x,y x y,Sn) print Sn 以上实例输出结果为: n- 2 Python练习实例19
runoob char = 6,space = 0,digit = 0,others = 0 Python 练习实例 18 Python 100 例 题目:求 s=a+aa+aaa+aaaa+aa...a 的值,其中 a 是一个数字。例如 2+22+222+2222+22222(此 时共有 5 个数相加),几个数相加有键盘控制。 程序分析:关键是计算出每一项的值。 程序源代码: #!/usr/bin/python # -*- coding: UTF-8 -*- Tn = 0 Sn = [] n = int(raw_input('n = :\n')) a = int(raw_input('a = :\n')) for count in range(n): Tn = Tn + a a = a * 10 Sn.append(Tn) print Tn Sn = reduce(lambda x,y : x + y,Sn) print Sn 以上实例输出结果为: n = : 2 a = : 4 4 44 48 Python 练习实例 19