Python 100例
- 格式:docx
- 大小:1022.03 KB
- 文档页数:95
100个python算法实例Python算法是指用Python编写的解决问题或处理数据的方法和步骤。
Python是一种通用的、高级的编程语言,具有简单易学、可读性强、代码简洁等特点,非常适合用于编写各种算法。
下面将给出100个Python算法实例的相关参考内容,不包含任何链接。
1. 阶乘算法阶乘算法用于计算一个正整数的阶乘,即n! = n * (n-1) * ... * 2 * 1。
可以使用递归或循环的方式实现,以下是一个示例代码:```pythondef factorial(n):if n == 0:return 1else:return n * factorial(n-1)```2. 斐波那契数列算法斐波那契数列由0和1开始,后面的每一项都是前两项的和。
可以使用递归或循环的方式实现,以下是一个示例代码:```pythondef fibonacci(n):if n <= 0:return 0elif n == 1:return 1else:return fibonacci(n-1) + fibonacci(n-2)```3. 冒泡排序算法冒泡排序是一种简单的排序算法,通过不断比较相邻的两个元素并交换位置,使得最大(或最小)的元素逐渐“冒泡”到最后(或最前)。
以下是一个示例代码:```pythondef bubble_sort(lst):n = len(lst)for i in range(n - 1):for j in range(n - 1 - i):if lst[j] > lst[j + 1]:lst[j], lst[j + 1] = lst[j + 1], lst[j]return lst```4. 快速排序算法快速排序是一种高效的排序算法,通过选择一个基准元素,将小于该基准的元素移到左侧,大于该基准的元素移到右侧,然后递归地对左右两个部分进行排序。
以下是一个示例代码:```pythondef quick_sort(lst):if len(lst) <= 1:return lstelse:pivot = lst[0]less = [x for x in lst[1:] if x <= pivot]greater = [x for x in lst[1:] if x > pivot]return quick_sort(less) + [pivot] + quick_sort(greater)```5. 二分查找算法二分查找算法是一种快速查找有序列表中特定元素位置的算法,通过不断将待查找范围缩小一半的方式进行查找。
python算法题目100及最佳答案Python算法题目100及最佳答案Python作为一门高效、简洁的编程语言,自然也有着强大的算法处理能力。
以下是Python算法题目100及其最佳答案,供大家练习和参考。
1. 输入一个数字n,计算并输出1到n的所有数字的和。
```pythondef sum(n):return (n*(n+1))/2```2. 输入一个数字n,计算并输出1到n的所有数字的平方和。
```pythondef square_sum(n):return (n*(n+1)*(2*n+1))/6```3. 输入一个数字n,判断其是否为质数。
```pythondef is_prime(n):if n<=1:return Falsefor i in range(2, int(n/2)+1):if n%i == 0:return Falsereturn True```4. 输入一个数字n,输出其所有的质因数。
```pythondef prime_factors(n):factors = []d = 2while d*d <= n:while (n % d) == 0:factors.append(d)n //= dd += 1if n > 1:factors.append(n)return factors```5. 输入一个字符串,判断其是否是回文字符串。
```pythondef is_palindrome(s):s = s.lower().replace(' ','')return s == s[::-1]```6. 输入一个序列,判断其是否是有序的。
```pythondef is_sorted(seq):for i in range(len(seq)-1):if seq[i+1] < seq[i]:return Falsereturn True```7. 输入两个有序序列,将其合并成一个有序的序列并输出。
python必刷100题以下是Python必刷的100道题目,根据不同的水平和兴趣,可以选择适合自己的题目进行练习。
1. 两数之和2. 两数之和 II - 输入有序数组3. 回文数4. 反转整数5. 字符串中的第一个唯一字符6. 合并两个有序链表7. 合并两个有序数组8. 盛最多水的容器9. 三数之和10. 删除排序数组中的重复项11. 最长回文子串12. 最长公共前缀13. 两个数组的交集14. 有效的括号15. 实现strStr()16. 合并K个排序链表17. Pow(x, n)18. 括号生成19. 合并区间20. 合并两个二叉树21. 买卖股票的最佳时机22. 缺失的第一个正数23. 二叉树的最大深度24. 对称二叉树25. 二叉树的层次遍历26. 外观数列27. 单词搜索28. 电话号码的字母组合29. 子集30. 二叉树的前序遍历31. 删除链表中的节点32. 有效的字母异位词33. 二叉树的锯齿形层次遍历34. 路径总和35. 跳跃游戏36. 最小栈37. 单词接龙38. 无重复字符的最长子串39. 相交链表40. 乘积最大子序列41. 格雷编码42. 旋转图像43. 螺旋矩阵44. 二叉搜索树中的搜索45. 字符串相乘46. 矩阵置零47. 下一个排列48. 最大子序和49. 三个数的最大乘积50. 最长连续递增序列51. 缺失的数字52. 跳跃游戏 II53. 矩阵中的最长递增路径54. 合并两个有序链表55. 删除链表的倒数第N个节点56. 最小路径和57. 旋转链表58. 接雨水59. 螺旋矩阵 II60. 跳跃游戏 III61. 移除元素62. 买卖股票的最佳时机 II63. 买卖股票的最佳时机 III64. 除自身以外数组的乘积65. 输出二叉树的右视图66. 反转链表67. 翻转字符串里的单词68. 颜色分类69. 数组中的第K个最大元素70. 验证二叉搜索树71. 在排序数组中查找元素的第一个和最后一个位置72. 寻找旋转排序数组中的最小值73. 最大矩形74. 将有序数组转换为二叉搜索树75. 路径总和 II76. 不同路径77. 组合78. 排列79. 子集 II80. 字符串转换整数(atoi)81. 删除排序链表中的重复元素82. 删除排序链表中的重复元素 II83. 分数到小数84. 复原IP地址85. 最接近的三数之和86. 验证回文串87. 寻找重复数88. 圆圈中最后剩下的数字89. 矩阵中的最长递增路径90. 找到所有数组中消失的数字91. 最小覆盖子串92. 最佳买卖股票时机含冷冻期93. 找到字符串中所有字母异位词94. 单词拆分95. 验证二叉树的前序序列化96. 从前序与中序遍历序列构造二叉树97. 子数组最大平均数 I98. 单词搜索 II99. 最长连续递增序列100. 打家劫舍。
python基础编程100例Python是一种简单易学的编程语言,被广泛应用于各个领域。
在学习Python的过程中,掌握基础编程技巧是非常重要的。
本文将介绍100个Python基础编程例子,帮助读者更好地理解和掌握Python编程。
1. 打印"Hello, World!":使用print函数输出字符串"Hello, World!"。
2. 计算两个数的和:输入两个数,使用加法运算符计算它们的和。
3. 计算两个数的差:输入两个数,使用减法运算符计算它们的差。
4. 计算两个数的积:输入两个数,使用乘法运算符计算它们的积。
5. 计算两个数的商:输入两个数,使用除法运算符计算它们的商。
6. 计算两个数的余数:输入两个数,使用取模运算符计算它们的余数。
7. 判断一个数是否为偶数:输入一个数,使用取模运算符判断它是否为偶数。
8. 判断一个数是否为质数:输入一个数,判断它是否为质数。
9. 计算一个数的阶乘:输入一个数,计算它的阶乘。
10. 判断一个字符串是否为回文:输入一个字符串,判断它是否为回文。
11. 判断一个字符串是否为有效的括号序列:输入一个字符串,判断它是否为有效的括号序列。
它是否为有效的IP地址。
13. 判断一个字符串是否为有效的邮箱地址:输入一个字符串,判断它是否为有效的邮箱地址。
14. 判断一个字符串是否为有效的手机号码:输入一个字符串,判断它是否为有效的手机号码。
15. 判断一个字符串是否为有效的身份证号码:输入一个字符串,判断它是否为有效的身份证号码。
16. 判断一个字符串是否为有效的URL:输入一个字符串,判断它是否为有效的URL。
17. 判断一个字符串是否为有效的日期:输入一个字符串,判断它是否为有效的日期。
18. 判断一个字符串是否为有效的时间:输入一个字符串,判断它是否为有效的时间。
19. 判断一个字符串是否为有效的邮政编码:输入一个字符串,判断它是否为有效的邮政编码。
python菜鸟教程100例1. 输出 "Hello, World!"```pythonprint("Hello, World!")```2. 计算两个数字的和```pythonnum1 = 1num2 = 2sum = num1 + num2print("两个数字的和为:", sum)```3. 判断一个数是正数、负数还是零```pythonnum = 10if num > 0:print("正数")elif num < 0:print("负数")else:print("零")```4. 判断一个数是否为素数```pythonnum = 7if num > 1:for i in range(2, num):if (num % i) == 0:print(num, "不是素数")breakelse:print(num, "是素数")else:print(num, "不是素数")```5. 求一个数的阶乘```pythonnum = 5factorial = 1if num < 0:print("负数没有阶乘")elif num == 0:print("0 的阶乘为 1")else:for i in range(1, num + 1):factorial = factorial * iprint(num, "的阶乘为", factorial)```6. 判断一个字符串是否为回文字符串```pythonstring = "level"if string == string[::-1]:print(string, "是回文字符串")else:print(string, "不是回文字符串")```7. 打印九九乘法表```pythonfor i in range(1, 10):for j in range(1, i + 1):print(i, "*", j, "=", i * j, end="\t")print()```8. 判断一个年份是否为闰年```pythonyear = 2020if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0: print(year, "是闰年")else:print(year, "不是闰年")```9. 转换华氏温度为摄氏温度```pythonfahrenheit = 100celsius = (fahrenheit - 32) * 5 / 9print("华氏温度", fahrenheit, "对应的摄氏温度为", celsius) ```10. 计算斐波那契数列```pythondef fibonacci(n):if n <= 0:return "输入的数字必须大于 0"elif n == 1:return 0elif n == 2:return 1else:return fibonacci(n-1) + fibonacci(n-2) num = 10for i in range(1, num+1):print(fibonacci(i), end=" ")```。
python例题100道Python是一种流行的编程语言,有助于解决各种问题。
这里我将列举一些常见的Python编程题目,以供参考:1. 输出"Hello, World!"2. 计算两个数的和。
3. 判断一个数是奇数还是偶数。
4. 打印九九乘法表。
5. 判断一个数是否为质数。
6. 计算斐波那契数列。
7. 检查字符串是否是回文。
8. 计算阶乘。
9. 判断一个字符串中出现次数最多的字符。
10. 反转字符串。
11. 实现冒泡排序算法。
12. 实现快速排序算法。
13. 实现选择排序算法。
14. 实现插入排序算法。
15. 实现二分查找算法。
16. 实现线性查找算法。
17. 实现栈。
18. 实现队列。
19. 实现链表。
20. 实现二叉树。
21. 实现图。
22. 实现哈希表。
23. 实现堆。
24. 实现深度优先搜索算法。
25. 实现广度优先搜索算法。
26. 实现Dijkstra算法。
27. 实现A算法。
28. 实现动态规划算法。
29. 实现贪心算法。
30. 实现KMP算法。
32. 实现马拉车算法。
33. 实现最小生成树算法。
34. 实现最短路径算法。
35. 实现最大流算法。
36. 实现最小费用最大流算法。
37. 实现拓扑排序算法。
38. 实现Floyd-Warshall算法。
39. 实现Bellman-Ford算法。
40. 实现Prim算法。
41. 实现Kruskal算法。
43. 实现字符串匹配算法。
44. 实现最长公共子序列算法。
45. 实现最长递增子序列算法。
46. 实现最长公共子串算法。
47. 实现最长回文子串算法。
48. 实现最长回文子序列算法。
49. 实现最长回文子序列算法。
50. 实现编辑距离算法。
51. 实现最长有效括号算法。
52. 实现最大矩形算法。
54. 实现单词搜索算法。
55. 实现N皇后问题算法。
56. 实现解数独算法。
57. 实现合并区间算法。
58. 实现插入区间算法。
【程序1】之杨若古兰创作题目:有1、2、3、4个数字,能构成多少个互不不异且无反复数字的三位数?都是多少?【程序2】题目:企业发放的奖金根据利润提成.利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超出100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?2 i = int(raw_input('Enter the profit:'))3 arr = [1000000,600000,400000,200000,100000,0]4 rat = [0.01,0.015,0.03,0.05,0.075,0.1]5 r = 06for idx in range(0,6):7if i>arr[idx]:8 r+=(iarr[idx])*rat[idx]9print (iarr[idx])*rat[idx]10 i=arr[idx]11print r【程序3】题目:一个整数,它加上100后是一个完整平方数,再加上168又是一个完整平方数,请问该数是多少?【感谢12楼的同学peiqianggao提供代码】# * coding:utf8 *'''Created on 67# 第三题:一个整数,它加上100后是一个完整平方数,再加上168又是一个完整平方数,请问该数是多少@author: Administrator'''import mathnum = 1while True:if math.sqrt(num + 100)int(math.sqrt(num + 100)) == 0 and math.sqrt(num + 268)int(math.sqrt(num + 268)) == 0:print(num)breaknum += 1【程序4】题目:输入某年某月某日,判断这一天是这一年的第几天?1#author: 叛军2import datetime3import time4 dtstr = str(raw_input('Enter the datetime:(1215):'))5 dt = datetime.datetime.strptime(dtstr, "%Y%m%d")6 another_dtstr =dtstr[:4] +'0101'7 another_dt = datetime.datetime.strptime(another_dtstr, "%Y%m%d")8print (int((dtanother_dt).days) + 1)【程序5】题目:输入三个整数x,y,z,请把这三个数由小到大输出.【程序8】题目:输出9*9口诀.1for i in range(1,10):2for j in range(1,i+1):3print i,'*',j,'=',i*j,4print''【程序11】题目:古典成绩:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1 a = 12 b = 13for i in range(1,21,2):4print'%d %d'%(a,b),5 a += b6 b += a【程序12】题目:判断101200之间有多少个素数,并输出所有素数. 1#!/usr/bin/python2#* coding:utf8 *3from math import sqrt4def main():5for i in range(101,201):6 flag = 17 k = int(sqrt(i))8for j in range(2,k+1):9if i%j == 0:10 flag = 011break12if flag == 1:13print'%5d'%(i),1415if__name__ == "__main__":16 main()【程序13】题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本人.例如:153是一个“水仙花数”,由于153=1的三次方+5的三次方+3的三次方.1#!/usr/bin/python2#* coding:utf8 *3def main():4for i in range(100,1000):5 a = i%106 b = i/1007 c = (int(i/10))%108if i == a**3+b**3+c**3:9print"%5d"%(i),1011if__name__ == "__main__":12 main()题目:将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5.1#!/usr/bin/python2#* coding:utf8 *34def main():5 n = int(raw_input('Enter a number:'))6print n,'=',7while(n!=1):8for i in range(2,n+1):9if (n%i)==0:10 n/=i11if(n == 1):12print'%d'%(i)13else:14print'%d *'%(i),15break161718if__name__ == "__main__":19 main()题目:利用条件运算符的嵌套来完成此题:进修成绩>=90分的同学用A暗示,6089分之间的用B暗示,60分以下的用C暗示.1#!/usr/bin/python2#* coding:utf8 *3def main():4 s = int(raw_input('Enter a number:'))5if s>=90:6 grade = 'A'7elif s>=60:8 grade = 'B'9else:10 grade = 'C'11print grade,1213if__name__ == '__main__':14 main()【程序17】题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数.1#!/usr/bin/python2#* coding:utf8 *3#there is no ++ operator in Python4import string5def main():6 s = raw_input('input a string:')7 letter = 08 space = 09 digit = 010 other = 011for c in s:12if c.isalpha():13 letter+=114elif c.isspace():15 space+=116elif c.isdigit():17 digit+=118else:19 other+=120print'There are %d letters,%d spaces,%d digits and %d other characters in your string.'%(letter,space,digit,other)2122if__name__ == '__main__':23 main()【程序18】题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字.例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制.1#!/usr/bin/python2#* coding:utf8 *3def main():4 basis = int(raw_input("Input the basis number:"))5 n = int(raw_input("Input the longest length of number:"))6 b = basis7 sum = 08for i in range(0,n):9if i==n1:10print"%d "%(basis),11else:12print"%d +"%(basis),13 sum+=basis14 basis = basis*10+b15print'= %d'%(sum),161718if__name__ == '__main__':19 main()【程序19】题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”.例如6=1+2+3.编程找出1000以内的所有完数.1from math import sqrt2 n = int(raw_input('input a number:'))3 sum = n*14 k = int(sqrt(n))5for i in range(1,k+1):6if n%i == 0:7 sum += n/i8 sum += i9if sum == n:10print'YES'11else:12print'NO'1'''2【程序20】3题目:一球从100米高度自在落下,每次落地后反跳回原高度的一半;再落下,求它在4 第10次落地时,共经过多少米?第10次反弹多高?5'''6 s = 100.8for i in range(2,11):9 s += 2*h10 h /= 211print"the sum length of path:%f"%s12print"the last height is:%f"%h1'''2 【程序21】3题目:猴子吃桃成绩:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个4 第二天早上又将剩下的桃子吃掉一半,又多吃了一个.当前每天早上都吃了前一天剩下5 的一半零一个.到第10天早上想再吃时,见只剩下一个桃子了.求第一天共摘了多少.6'''7 n = 18for i in range(9,0,1):9 n = (n+1)<<110print n1'''2★3【程序22】4题目:两个乒乓球队进行角逐,各出三人.甲队为a,b,c三人,乙队为x,y,z三人.已抽签决定5 角逐名单.有人向队员打听角逐的名单.a说他和睦x 比,c说他和睦x,z比,请编程序找出6 三队赛手的名单.7'''8for i in range(ord('x'),ord('z') + 1):9for j in range(ord('x'),ord('z') + 1):10if i != j:11for k in range(ord('x'),ord('z') + 1):12if (i != k) and (j != k):13if (i != ord('x')) and (k != ord('x')) and (k != ord('z')):14print'order is a %s\t b %s\tc%s' % (chr(i),chr(j),chr(k))1'''2【程序23】3题目:打印出如下图案(菱形)46 ***7 *****8*******9 *****10 ***11 *12'''13for i in range(1,8,2):14print''*(4(i+1)/2)+'*'*i15for i in range(5,0,2):16print''*(4(i+1)/2)+'*'*i1'''2【程序24】3题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和.4'''8for i in range(0,20):9 s = s+u/d10 u = u+d11 d = ud12print'%f'%s2【程序25】3题目:求1+2!+3!+...+20!的和 4'''5 s = 06 t = 17for i in range(1,21):8 t*=i9 s+=t10print s1'''2【程序26】3题目:利用递归方法求5!.4'''5def fun(i):6if i==1:7return 18return i*fun(i1)910print fun(5)1'''2【程序27】3题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来.4'''5def output(s,l):6if l==0:7return8print s[l1]9 output(s,l1)1011 s = raw_input('Input a string:')12 l = len(s)13 output(s,l)1'''2【程序28】3题目:有5个人坐在一路,问第五个人多少岁?他说比第4个人大2岁.问第4个人岁数,他说比第4 3个人大2岁.问第三个人,又说比第2人大两岁.问第2个人,说比第一个人大两岁.最初5 问第一个人,他说是10岁.请问第五个人多大?6'''7def fun(i):8if i==1:9return 1010return fun(i1)+21112print fun(5)1'''2【程序29】3题目:给一个不多于5位的正整数,请求:一、求它是几位数,二、逆序打印出各位数字.4'''5def fun(i,cnt):6if i==0:7print'There are %d digit in the number.'%cnt8return9print i%10,10 i/=1011 cnt+=112 fun(i,cnt)1314 i = int(raw_input('Input a number:'))15 fun(i,0)1'''2【程序30】3题目:一个5位数,判断它是不是回文数.即12321是回文数,个位与万位不异,十位与千位不异.4'''5 ans=['Yes','No']6 i = int(raw_input('Input a number(10000~99999):'))7if i<10000 or i>99999:8print'Input Error!'9else:10 i = str(i)11 flag = 012for j in range(0,2):13if i[j]!=i[4j]:14 flag = 115break16print ans[flag]1'''2【程序36】【筛选法】3题目:求100以内的素数4'''5 a = [0]*1016for i in range(2,11):7for j in range(i+i,101,i):8 a[j]=1;9for i in range(2,101):10if a[i]!=1:11print'',i,1'''2【程序37】3题目:对10个数进行排序4'''5print'input 10 numbers please:'6 l = []7for i in range(10):8 l.append(int(raw_input('Input a number:'))) 9#可以直接使用sort函数:l.sort()10#也能够本人写排序代码(选择排序)11for i in range(9):12for j in range(i+1,10):13if l[j]<l[i]:14 temp = l[j]15 l[j] = l[i]16 l[i] = temp17print l1'''2【程序38】3题目:求一个3*3矩阵对角线元素之和4'''5 l = []6for i in range(3):7for j in range(3):8 l.append(int(raw_input('Input a number:')))9 s = 010for i in range(3):11 s += l[3*i+i]12print s1'''2【程序39】3题目:有一个曾经排好序的数组.现输入一个数,请求按本来的规律将它拔出数组中.4'''5 l = [0,10,20,30,40,50]67print'The sorted list is:',l8 cnt = len(l)9 n = int(raw_input('Input a number:'))10 l.append(n)11for i in range(cnt):12if n<l[i]:13for j in range(cnt,i,1):14 l[j] = l[j1]15 l[i] = n16break17print'The new sorted list is:',l1'''2【程序40】3题目:将一个数组逆序输出.4'''5 a = [1,2,3,4,5,6,7,8,9]6 l = len(a)7print a8for i in range(l/2):9 a[i],a[li1] = a[li1],a[i] #留意此句10print a1'''2【程序41】3题目:进修static定义静态变量的用法4题目:进修使用auto定义变量的用法5题目:进修使用external的用法6题目:进修使用register定义变量的方法7题目:宏#define命令练习8'''9#Python没有这些功能1'''2演示lambda的使用.3'''4 MAXIMUM = lambda x,y : (x > y) * x + (x < y) * y5 MINIMUM = lambda x,y : (x > y) * y + (x < y) * x 67if__name__ == '__main__':8 a = 109 b = 2010print'The largar one is %d' % MAXIMUM(a,b)11print'The lower one is %d' % MINIMUM(a,b)1'''2【程序51】3题目:进修使用按位与 & .4程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=156题目:进修使用按位或 | .7程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=189题目:进修使用按位异或 ^ .10程序分析:0^0=0; 0^1=1; 1^0=1; 1^1=0 1112题目:进修使用按位取反~.13程序分析:~0=1; ~1=01415'''16 a = 077#8进制17 b = a&318print'077&3=%d'%b19 b&=720print'077&3&7=%d'%b2122 a = 07723 b = a | 324print'077|3=%d' % b25 b |= 726print'077|3|7=%d' % b2728 a = 07729 b = a ^ 330print'077^3=%d' % b31 b ^= 732print'077^3^7=%d' % b1'''2【程序54】3题目:取一个整数a从右端开始的4~7位.4'''5 a = 1006print 100&0x00F01'''2【程序56】3题目:画圆【Tkinter模块】4'''5if__name__ == '__main__':6from Tkinter import *78 canvas = Canvas(width=800, height=600, bg='red')9 canvas.pack(expand=YES, fill=BOTH)10 k = 111 j = 112for i in range(0,26):13 canvas.create_oval(310 k,250 k,310 + k,250 + k, width=1)14 k += j1617 mainloop()1'''2【程序57】3题目:画直线.41.程序分析:52.程序源代码:6'''7if__name__ == '__main__':8from Tkinter import *910 canvas = Canvas(width=300, height=300, bg='green')11 canvas.pack(expand=YES, fill=BOTH)12 x0 = 26313 y0 = 26314 y1 = 27515 x1 = 27516for i in range(19):17 canvas.create_line(x0,y0,x0,y1, width=1, fill='red')18 x0 = x0 519 y0 = y0 520 x1 = x1 + 521 y1 = y1 + 52223 x0 = 26324 y1 = 27525 y0 = 26326for i in range(21):27 canvas.create_line(x0,y0,x0,y1,fill = 'red')28 x0 += 529 y0 += 530 y1 += 53132 mainloop()1'''2【程序58】3题目:画方形.4'''5if__name__ == '__main__':6from Tkinter import *7 root = Tk()8 root.title('Canvas')9 canvas = Canvas(root,width = 400,height = 400,bg = 'yellow')10 x0 = 26311 y0 = 26312 y1 = 27513 x1 = 27514for i in range(19):15 canvas.create_rectangle(x0,y0,x1,y1)16 x0 = 517 y0 = 518 x1 += 519 y1 += 52021 canvas.pack()22 root.mainloop()1'''2题目:画图,综合例子.31.程序分析:42.程序源代码:5'''6if__name__ == '__main__':7from Tkinter import *8 canvas = Canvas(width = 300,height = 300,bg = 'green')9 canvas.pack(expand = YES,fill = BOTH)10 x0 = 15011 y0 = 10012 canvas.create_oval(x0 10,y0 10,x0 + 10,y0 + 10)13 canvas.create_oval(x0 20,y0 20,x0 + 20,y0 + 20)14 canvas.create_oval(x0 50,y0 50,x0 + 50,y0 + 50)15import math17for i in range(16):18 a = 2 * math.pi / 16 * i19 x = math.ceil(x0 + 48 * math.cos(a))20 y = math.ceil(y0 + 48 * math.sin(a) * B)21 canvas.create_line(x0,y0,x,y,fill = 'red')22 canvas.create_oval(x0 60,y0 60,x0 + 60,y0 + 60)232425for k in range(501):26for i in range(17):27 a = (2 * math.pi / 16) * i + (2 * math.pi / 180) * k28 x = math.ceil(x0 + 48 * math.cos(a))29 y = math.ceil(y0 + 48 + math.sin(a) * B)30 canvas.create_line(x0,y0,x,y,fill = 'red')31for j in range(51):32 a = (2 * math.pi / 16) * i + (2* math.pi / 180) * k 133 x = math.ceil(x0 + 48 * math.cos(a))34 y = math.ceil(y0 + 48 * math.sin(a) * B)35 canvas.create_line(x0,y0,x,y,fill = 'red')36 mainloop()。
大一python入门例题100道Python作为一门简单易学的编程语言,受到了越来越多大一学生的喜爱。
为了帮助大家更好地掌握Python编程,我整理了100道入门例题,希望能够对大家的学习有所帮助。
1. 输出"Hello, World!"。
2. 计算1+2的结果。
3. 计算2的平方。
4. 计算5的阶乘。
5. 输入一个数字,判断它是否为偶数。
6. 输入一个年份,判断它是否为闰年。
7. 输入一个字符串,判断它是否为回文字符串。
8. 输入一个数字n,输出1到n之间的所有素数。
9. 输入一个字符串,统计其中的字母、数字和其他字符的个数。
10. 输入一个字符串,将其中的大写字母转换为小写字母。
11. 输入一个字符串,将其中的小写字母转换为大写字母。
12. 输入一个字符串,将其中的数字字符删除。
13. 输入一个字符串,将其中的空格字符删除。
14. 输入一个字符串,将其中的标点符号删除。
15. 输入一个字符串,将其中的所有字符按照ASCII码的顺序排序。
16. 输入一个字符串,将其中的所有字符按照出现的次数排序。
17. 输入一个字符串,将其中的所有字符按照字母表的顺序排序。
18. 输入一个字符串,将其中的所有字符按照逆序输出。
19. 输入一个字符串,将其中的所有单词按照长度排序。
20. 输入一个字符串,将其中的所有单词按照字母表的顺序排序。
21. 输入一个字符串,将其中的所有单词按照逆序输出。
22. 输入一个字符串,将其中的所有单词按照出现的次数排序。
23. 输入一个字符串,将其中的所有单词按照首字母的ASCII码排序。
24. 输入一个字符串,将其中的所有单词按照尾字母的ASCII码排序。
25. 输入一个字符串,将其中的所有单词按照首字母的逆序输出。
26. 输入一个字符串,将其中的所有单词按照尾字母的逆序输出。
27. 输入一个字符串,将其中的所有单词按照长度的逆序输出。
28. 输入一个字符串,将其中的所有单词按照出现的次数的逆序输出。
100个有趣的python算法实例100个有趣的Python算法实例1. 判断一个数是否为素数。
2. 计算一个数的阶乘。
3. 判断一个字符串是否是回文。
4. 查找列表中的最大值。
5. 判断一个字符串中出现次数最多的字符。
6. 将一个字符串中的字符逆序输出。
7. 判断两个字符串是否为同字母异序词。
8. 将一个列表中的元素反向排序。
9. 计算斐波那契数列的第n个数。
10. 将一个列表中的元素去重。
11. 判断一个数是否为完全平方数。
12. 判断一个字符串是否为有效的括号匹配。
13. 实现二分查找算法。
14. 判断一个字符串是否为回文数。
15. 将一个字符串中的单词反转。
16. 判断一个字符串是否为有效的IP地址。
17. 实现快速排序算法。
18. 判断一个数是否为质数。
19. 判断一个字符串是否为有效的URL。
20. 将一个字符串按单词进行翻转。
21. 实现归并排序算法。
22. 判断一个字符串是否为有效的邮箱地址。
23. 将一个字符串中的元音字母反转。
24. 判断一个数是否为回文数。
25. 实现选择排序算法。
26. 判断一个字符串是否为有效的手机号码。
27. 将一个字符串中的大写字母转换为小写字母。
28. 实现插入排序算法。
29. 判断一个字符串是否为有效的身份证号码。
30. 将一个列表中的元素按照出现次数降序排序。
31. 判断一个字符串是否为有效的日期格式。
32. 实现堆排序算法。
33. 判断一个字符串是否为有效的HTML标签。
34. 将一个字符串中的奇数位字符与偶数位字符分离。
35. 实现计数排序算法。
36. 判断一个字符串是否为有效的JSON格式。
37. 将一个字符串中的元素按照字母顺序排序。
38. 实现基数排序算法。
39. 判断一个字符串是否为有效的XML标签。
40. 将一个列表中的负数移到列表末尾。
41. 实现贪心算法解决找零钱问题。
42. 统计一个字符串中每个字符出现的次数。
43. 判断一个数是否为斐波那契数。
python经典算法100例Python是一种简单易学的编程语言,它具有丰富的库和模块,可以实现各种算法。
下面将介绍100个经典的Python算法例子,帮助读者更好地理解和掌握Python编程。
1. 二分查找算法:在有序数组中查找指定元素的位置。
2. 冒泡排序算法:对数组进行排序,每次比较相邻的两个元素并交换位置。
3. 快速排序算法:通过选择一个基准元素,将数组分为两部分,递归地对两部分进行排序。
4. 插入排序算法:将数组分为已排序和未排序两部分,每次从未排序部分选择一个元素插入到已排序部分的正确位置。
5. 选择排序算法:每次从未排序部分选择最小的元素放到已排序部分的末尾。
6. 归并排序算法:将数组分为两部分,递归地对两部分进行排序,然后将两部分合并。
7. 堆排序算法:通过构建最大堆或最小堆,将数组进行排序。
8. 计数排序算法:统计数组中每个元素的出现次数,然后按照次数进行排序。
9. 桶排序算法:将数组分为多个桶,每个桶内部进行排序,然后将桶中的元素按照顺序合并。
10. 基数排序算法:按照元素的位数进行排序,从低位到高位依次进行。
11. 斐波那契数列算法:计算斐波那契数列的第n个数。
12. 阶乘算法:计算一个数的阶乘。
13. 最大公约数算法:计算两个数的最大公约数。
14. 最小公倍数算法:计算两个数的最小公倍数。
15. 素数判断算法:判断一个数是否为素数。
16. 矩阵相加算法:计算两个矩阵的和。
17. 矩阵相乘算法:计算两个矩阵的乘积。
18. 斐波那契堆算法:实现斐波那契堆的插入、删除和合并操作。
19. 最短路径算法:计算图中两个节点之间的最短路径。
20. 最小生成树算法:计算图中的最小生成树。
21. 拓扑排序算法:对有向无环图进行拓扑排序。
22. 最大流算法:计算网络中的最大流。
23. 最小费用流算法:计算网络中的最小费用流。
24. 最大子序列和算法:计算数组中连续子序列的最大和。
25. 最长递增子序列算法:计算数组中最长递增子序列的长度。
python练⼿经典100例-Python⼊门练⼿100例【Python练习实例001】有四个数字:1、2、3、4,能组成多少个互不相同且⽆重复数字的三位数?各是多少?【Python练习实例002】企业发放的奖⾦根据利润提成。
利润(I)低于或等于10万元时,奖⾦可提10%;利润⾼于10万元,低于或等于20万元时,10万的部分按10%提成,⾼于10万元的部分,可提成7.5%;20万到40万元(含)之间时,⾼于20万元的部分,可提成5%;40万元到60万元(含)之间时⾼于40万元的部分,可提成3%;60万元到100万元(含)之间时,⾼于60万元的部分,可提成1.5%,⾼于100万元时,超过100万元的部分按1%提成,从键盘输⼊当⽉利润(I),求应发放奖⾦总数?【Python练习实例003】⼀个正整数,它加上100后是⼀个完全平⽅数,再加上168⼜是⼀个完全平⽅数,请问该数是多少?【Python练习实例004】输⼊某年某⽉某⽇,判断这⼀天是这⼀年的第⼏天?【Python练习实例005】输⼊三个整数x, y, z,请把这三个数由⼩到⼤输出。
【Python练习实例007】将⼀个列表的数据复制到另⼀个列表中。
【Python练习实例010】暂停⼀秒输出,并格式化当前时间。
【Python练习实例011】古典问题:有⼀对兔⼦,从出⽣后第3个⽉起每个⽉都⽣⼀对兔⼦,⼩兔⼦长到第三个⽉后每个⽉⼜⽣⼀对兔⼦,假如兔⼦都不死,问每个⽉的兔⼦总数为多少?【Python练习实例012】判断101-200之间有多少个素数,并输出所有素数。
【Python练习实例013】打印出所有的"⽔仙花数”,所谓"⽔仙花数”是指⼀个三位数,其各位数字⽴⽅和等于该数本⾝。
例如:153是⼀个"⽔仙花数”,因为153=1³+5³+3³。
【Python练习实例014】将⼀个正整数分解质因数。
快速⼊门:Python简单实例100个(⼊门完整版)Python3 100例⽂章⽬录实例001:数字组合题⽬有四个数字:1、2、3、4,能组成多少个互不相同且⽆重复数字的三位数?各是多少?程序分析遍历全部可能,把有重复的剃掉。
1 num=02for a in range(1,5):3for b in range(1,5):4for c in range(1,5):5if((a!=b)and(a!=c)and(b!=c)):6print(a,b,c)7 num+=18print (num)实例002:“个税计算”题⽬企业发放的奖⾦根据利润提成。
利润(I)低于或等于10万元时,奖⾦可提10%;利润⾼于10万元,低于20万元时,低于10万元的部分按10%提成,⾼于10万元的部分,可提成7.5%;20万到40万之间时,⾼于20万元的部分,可提成5%;40万到60万之间时⾼于40万元的部分,可提成3%;60万到100万之间时,⾼于60万元的部分,可提成1.5%,⾼于100万元时,超过100万元的部分按1%提成,从键盘输⼊当⽉利润I,求应发放奖⾦总数?2 bonus=03 thresholds=[100000,100000,200000,200000,400000]4 rates=[0.1,0.075,0.05,0.03,0.015,0.01]5for i in range(len(thresholds)):6if profit<=thresholds[i]:7 bonus+=profit*rates[i]8 profit=09break10else:11 bonus+=thresholds[i]*rates[i]12 profit-=thresholds[i]13 bonus+=profit*rates[-1]14print(bonus实例003:完全平⽅数题⽬⼀个整数,它加上100后是⼀个完全平⽅数,再加上168⼜是⼀个完全平⽅数,请问该数是多少?程序分析因为168对于指数爆炸来说实在太⼩了,所以可以直接省略数学分析,⽤最朴素的⽅法来获取上限: n=0while (n+1)**2-n*n<=168:n+=1print(n+1)----------85思路是:最坏的结果是n的平⽅与(n+1)的平⽅刚好差168,由于是平⽅的关系,不可能存在⽐这更⼤的间隙。
一、Python 练习实例1题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满足条件的排列。
程序源代码:#!/usr/bin/python# -*- coding: UTF-8 -*-for i in range(1, 5):for j in range(1, 5):for k in range(1, 5):if (i != k) and (i != j) and (j != k):print(i, j, k)二、Python 练习实例2题目:企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?程序分析:请利用数轴来分界,定位。
注意定义时需把奖金定义成长整型。
程序源代码:#!/usr/bin/python# -*- coding: UTF-8 -*-i = int(input('净利润:'))arr = [1000000, 600000, 400000, 200000, 100000, 0]rat = [0.01, 0.015, 0.03, 0.05, 0.075, 0.1]r = 0for idx in range(0, 6):if i > arr[idx]:r += (i - arr[idx]) * rat[idx]print((i - arr[idx]) * rat[idx])i = arr[idx]print(r)三、Python 练习实例3题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?程序分析:假设该数为 x。
完整版Python100个小例子1. 斐波那契数列```def fib(n):if n <= 0:return []elif n == 1:return [0]elif n == 2:return [0, 1]else:fib_list = [0, 1]while len(fib_list) < n:fib_list.append(fib_list[-1] + fib_list[-2])return fib_list```2. 素数判断```def is_prime(num):if num <= 1:return Falseelse:for i in range(2, int(num**0.5) + 1): if num % i == 0:return Falsereturn True```3. 翻转字符串```def reverse_string(s):return s[::-1]```4. 列表去重```def remove_duplicates(lst):return list(set(lst))```5. 判断回文数```def is_palindrome(num):return str(num) == str(num)[::-1]```6. 求最大公约数```def gcd(a, b):while b:a, b = b, a % breturn a```7. 冒泡排序```def bubble_sort(lst):n = len(lst)for i in range(n - 1):for j in range(n - 1 - i):if lst[j] > lst[j + 1]:lst[j], lst[j + 1] = lst[j + 1], lst[j]return lst```8. 求阶乘```def factorial(n):if n <= 1:return 1else:return n * factorial(n - 1) ```9. 查找列表中的最大值```def find_max(lst):if not lst:return Nonemax_value = lst[0]for num in lst:if num > max_value:max_value = numreturn max_value```10. 矩阵转置```def matrix_transpose(matrix):return [[matrix[j][i] for j in range(len(matrix))] for i inrange(len(matrix[0]))]```以上是一些完整版的Python小例子。
python爬虫项目100例随着互联网的快速发展,信息获取变得越来越重要。
而爬虫技术作为一种自动化获取网络信息的技术,受到了广泛的关注和应用。
Python 作为一种简洁、易学、功能强大的编程语言,成为了爬虫技术的首选语言。
下面将介绍100个Python爬虫项目的例子,希望能够给大家提供一些灵感和参考。
1. 爬取网页上的新闻标题和链接。
2. 爬取网页上的图片并保存到本地。
3. 爬取网页上的电影信息,并保存到数据库。
4. 爬取网页上的音乐信息,并保存到本地。
5. 爬取网页上的天气信息,并保存到数据库。
6. 爬取网页上的股票信息,并保存到本地。
7. 爬取网页上的商品信息,并保存到数据库。
8. 爬取网页上的招聘信息,并保存到本地。
9. 爬取网页上的房产信息,并保存到数据库。
10. 爬取网页上的电视剧信息,并保存到本地。
11. 爬取网页上的小说内容,并保存到数据库。
12. 爬取网页上的美食菜谱,并保存到本地。
13. 爬取网页上的旅游景点信息,并保存到数据库。
14. 爬取网页上的体育赛事信息,并保存到本地。
15. 爬取网页上的股票行情,并保存到数据库。
16. 爬取网页上的汽车信息,并保存到本地。
17. 爬取网页上的游戏攻略,并保存到数据库。
18. 爬取网页上的科技新闻,并保存到本地。
19. 爬取网页上的健康知识,并保存到数据库。
20. 爬取网页上的教育资讯,并保存到本地。
21. 爬取网页上的娱乐新闻,并保存到数据库。
22. 爬取网页上的军事新闻,并保存到本地。
23. 爬取网页上的历史资料,并保存到数据库。
24. 爬取网页上的美女图片,并保存到本地。
25. 爬取网页上的搞笑段子,并保存到数据库。
26. 爬取网页上的动漫资讯,并保存到本地。
27. 爬取网页上的游戏下载链接,并保存到数据库。
28. 爬取网页上的电影下载链接,并保存到本地。
29. 爬取网页上的音乐下载链接,并保存到数据库。
31. 爬取网页上的美食菜谱下载链接,并保存到数据库。
Python3基础训练100题文章目录实例001:数字组合实例002:“个税计算”实例003:完全平方数实例004:这天第几天实例005:三数排序实例006:斐波那契数列实例007:copy实例008:九九乘法表实例009:暂停一秒输出实例010:给人看的时间实例011:养兔子实例012:100到200的素数实例013:所有水仙花数实例014:分解质因数实例015:分数归档实例016:输出日期实例017:字符串构成实例018:复读机相加实例019:完数实例020:高空抛物实例021:猴子偷桃实例022:比赛对手实例023:画菱形实例024:斐波那契数列II实例025:阶乘求和实例026:递归求阶乘实例027:递归输出实例028:递归求等差数列实例029:反向输出实例030:回文数实例031:字母识词实例032:反向输出II实例033:列表转字符串实例034:调用函数实例035:设置输出颜色实例036:算素数实例037:排序实例038:矩阵对角线之和实例039:有序列表插入元素实例040:逆序列表实例041:类的方法与变量实例042:变量作用域实例043:作用域、类的方法与变量实例044:矩阵相加实例045:求和实例046:打破循环实例047:函数交换变量实例048:数字比大小实例049:lambda实例050:随机数实例051:按位与实例052:按位或实例053:按位异或实例054:位取反、位移动实例055:按位取反实例056:画圈实例057:画线实例058:画矩形实例059:画图(丑)实例060:字符串长度实例061:杨辉三角实例062:查找字符串实例063:画椭圆实例064:画椭圆、矩形实例065:画组合图形实例066:三数排序实例067:交换位置实例068:旋转数列实例069:报数实例070:字符串长度II实例071:输入和输出实例072:创建链表实例073:反向输出链表实例074:列表排序、连接实例075:不知所云实例076:做函数实例077:遍历列表实例078:字典实例079:字符串排序实例080:猴子分桃实例081:求未知数实例082:八进制转十进制实例083:制作奇数实例084:连接字符串实例085:整除实例086:连接字符串II实例087:访问类成员实例088:打印星号实例089:解码实例090:列表详解实例091:time模块实例092:time模块II实例093:time模块III实例094:time模块IV实例095:转换时间格式实例096:计算复读次数实例097:磁盘写入实例098:磁盘写入II实例099:磁盘读写实例100:列表转字典实例001:数字组合题目有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?程序分析遍历全部可能,把有重复的剃掉。
Python 练习实例1题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满足条件的排列。
程序源代码:实例(Python 2.0+)#!/usr/bin/python# -*- coding: UTF-8 -*-for i in range(1,5):for j in range(1,5):for k in range(1,5):if(i != k)and(i != j)and(j != k):print i,j,k以上实例输出结果为:123124132134142143213214231234241243312314321324341342412413421423431Python 练习实例2Python 100例题目:企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?程序分析:请利用数轴来分界,定位。
注意定义时需把奖金定义成长整型。
程序源代码:实例(Python 2.0+)#!/usr/bin/python# -*- coding: UTF-8 -*-i = int(raw_input('净利润:'))arr = [1000000,600000,400000,200000,100000,0]rat = [0.01,0.015,0.03,0.05,0.075,0.1]r = 0for idx in range(0,6):if i>arr[idx]:r+=(i-arr[idx])*rat[idx]print(i-arr[idx])*rat[idx]i=arr[idx]print r以上实例输出结果为:净利润:1200001500.010000.011500.0Python 练习实例3Python 100例题目:一个整数,它加上100和加上268后都是一个完全平方数,请问该数是多少?程序分析:在10000以内判断,将该数加上100后再开方,加上268后再开方,如果开方后的结果满足如下条件,即是结果。
请看具体分析:程序源代码:实例(Python 2.0+)#!/usr/bin/python# -*- coding: UTF-8 -*-import mathfor i in range(10000):#转化为整型值x = int(math.sqrt(i + 100))y = int(math.sqrt(i + 268))if(x * x == i + 100)and(y * y == i + 268):print i以上实例输出结果为:212611581Python 练习实例4Python 100例题目:输入某年某月某日,判断这一天是这一年的第几天?程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于2时需考虑多加一天:程序源代码:实例(Python 2.0+)#!/usr/bin/python# -*- coding: UTF-8 -*-year = int(raw_input('year:\n'))month = int(raw_input('month:\n'))day = int(raw_input('day:\n'))months = (0,31,59,90,120,151,181,212,243,273,304,334)if0 < month <= 12:sum = months[month - 1]else:print'data error'sum += day leap = 0if(year % 400 == 0)or((year % 4 == 0)and(year % 100 != 0)): leap = 1if(leap == 1)and(month > 2):sum += 1print'it is the %dth day.' % sum以上实例输出结果为:year:2015month:6day:7it is the 158th day.Python 100例Python 练习实例6Python 100例题目:斐波那契数列。
程序分析:斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。
在数学上,费波那契数列是以递归的方法来定义:程序源代码:方法一方法二以上实例输出了第10个斐波那契数列,结果为:Python 练习实例7 Python 100例题目:将一个列表的数据复制到另一个列表中。
程序分析:使用列表[:]。
Python 练习实例8 Python 100例题目:输出9*9 乘法口诀表。
程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
程序源代码:9*9 乘法口诀Python 练习实例9 Python 100例题目:暂停一秒输出。
以上实例输出结果为(会有停顿效果):Python 100例Python 练习实例11Python 100例题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....程序源代码:实例(Python 2.0+)Python 练习实例12Python 100例题目:判断101-200之间有多少个素数,并输出所有素数。
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
程序源代码:Python 练习实例13Python 100例Python 练习实例14Python 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的值,重复执行第一步。
程序源代码: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/indexif n ==1:print indexelse:# index 一定是素数print'{} *'.format(index),breakreduceNum(90)reduceNum(100)Python 练习实例15Python 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:Python 练习实例16Python 100例题目:输出指定格式的日期。
程序分析:使用datetime 模块。
程序源代码:#!/usr/bin/python# -*- coding: UTF-8 -*-import datetimeif __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)Python 练习实例17Python 100例题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
程序分析:利用while语句,条件为输入的字符不为'\n'。
程序源代码:#!/usr/bin/python# -*- coding: UTF-8 -*-import strings = raw_input('input a string:\n')letters =0space =0digit =0others =0for c in s:if c.isalpha():letters +=1elif c.isspace():space +=1elif c.isdigit():digit +=1else:others +=1print'char = %d,space = %d,digit = %d,others = %d'%(letters,space,digit,oth ers)Python 100例Python 练习实例19 Python 100例Python 练习实例20Python 100例题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?程序分析:无程序源代码:Python 实例Python 练习实例21Python 100例题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。