day22 --------------------------------------------------------------- 实例031:字母识词 题目 请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母. 分析:用字典来存储,在用字符串的查找方法,这里还得过滤字符串的大小写,再依次查找,如果没找到就删除这个key,最后剩下的只能是一个key 1 dic1 = {"monday":"周一","tuesday&…
深深感知python基础是有多么重要,Ljh说一定要多练题,so,我现在开始要每天打卡练习python.加油! 01:求‘1-100’的偶数和 #第一种解法: sum=0 num=0 while num<101: num+=1 if num%2==0: sum+=num print(sum) #第二种解法: sum=0 for i in range(2,101,2): sum+=i print(sum) #第三种解法: sum=0 for i in range(1,101): if i%2==0…
day10 --------------------------------------------------------------- 实例017:字符串构成 题目 输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. 分析:看看string模块的使用 str.isalpha 如果字符串中至少有一个字符且所有字符均为字母则返回真值,否则返回假值. str.isspace 如果字符串中至少有一个字符且所有字符均为空白字符则返回真值,否则返回假值. str.isdigit 如果字符…
day39 --------------------------------------------------------------- 实例061:查找字符串 题目 查找字符串. 分析:查找字符串python提供了4种方法:其中find和index方法,是从左到右开始查找,加r代表从右到左查找:find方法返回找到后第一个子串的下标,未找到返回-1,而index方法未找到会抛出异常. 代码如下: s1 = "qinglaoshi" print(s1.find("ao&qu…
day35 --------------------------------------------------------------- 实例050:随机数 题目 输出一个随机数. 分析:使用random模块,直接上代码. import random #用于生成一个0到1的随机数 print(random.random()) #用于生成一个指定范围的随机数 print(random.uniform(10,11)) #用于生成一个指定范围内的整数 print(random.randint(10,…
day28 --------------------------------------------------------------- 实例042:变量作用域 题目 学习使用auto定义变量的用法. 程序分析 python中的变量作用域. 1 i=0 2 n=0 3 def dummy(): 4 i=0 5 print("xxx",i) 6 i+=1 7 def dummy2(): 8 global n 9 print("---",n) 10 n+=1 11 p…
day23 --------------------------------------------------------------- 实例035:设置输出颜色 题目 文本颜色设置. 分析:不会,直接上答案吧. 1 class bcolors: 2 """ 3 格式:\033[显示颜色m 4 90:黑 5 91:深红 6 92:绿 7 93:黄色 8 94:蓝色 9 95:紫色 10 96:深绿 11 97:白色 12 """ 13 HEAD…
day16 --------------------------------------------------------------- 实例024:斐波那契数列II 题目 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13-求出这个数列的前20项之和. 分析:就是斐波那契数列的后一项除以前一项,于是写了两个函数 1 def fbs(num): 2 a = [0,1] 3 if num<=2: 4 return a 5 else: 6 for i in range(1,int(…
day40 --------------------------------------------------------------- 实例066:三数排序 题目 输入3个数a,b,c,按大小顺序输出. 分析:使用列表,用排序函数sorted i = 0 a = [] while i < 3: a.append(int(input("请输入一个整数:"))) i += 1 print(sorted(a)) 看看答案: # 方法一 raw=[] for i in range(3…
day38 --------------------------------------------------------------- 实例061:杨辉三角 题目 打印出杨辉三角形前十行. 分析:查了一下,杨辉三角规律,每行多一个数,每行的值等于上一行相邻的值相加,其中边角值可以看为0,即一直为1,所以可以用列表套列表来做 代码如下: for i in range(1,10): for k in range(10-i): print(" ", end="") p…
day37 --------------------------------------------------------------- 实例056:画圈 题目 画图,学用circle画圆形. 分析:还是直接上代码 from tkinter import * canvas=Canvas(width=800,height=600,bg='yellow') canvas.pack(expand=YES,fill=BOTH) k=1 j=1 for i in range(26): canvas.cr…
day36 --------------------------------------------------------------- 实例054:位取反.位移动 题目 取一个整数a从右端开始的4〜7位. 分析: 不会,直接上答案吧 (1)先使a右移4位. (2)设置一个低4位全为1,其余全为0的数.可用(0<<4) (3)将上面二者进行&运算. a=int(input('输入一个数字: ')) b=0 # 0 b=~b # 1 b=b<<4 # 10000 b=~b…
day34 --------------------------------------------------------------- 实例049:lambda 题目 使用lambda来创建匿名函数. 分析:直接上代码. Max=lambda x,y:x*(x>=y)+y*(y>x) Min=lambda x,y:x*(x<=y)+y*(y<x) a=int(input('1:')) b=int(input('2:')) print(Max(a,b)) 答案很巧妙,常规写法:…
day32 --------------------------------------------------------------- 实例046:打破循环 题目 求输入数字的平方,如果平方运算后小于 50 则退出. 分析:直接上代码. while True: try: n=float(input('输入一个数字:')) except: print('输入错误') continue dn=n**2 print('其平方为:',dn) if dn<50: print('平方小于50,退出')…
day31 --------------------------------------------------------------- 实例045:求和 题目 统计 1 到 100 之和. 分析:简单,直接上代码. def sum(a,b): s = 0 for i in range(a,b+1): s += i return s print(sum(1,100)) 看了下答案,思路一样,就不贴了.…
day30 --------------------------------------------------------------- 实例044:矩阵相加 题目 计算两个矩阵相加. 分析:矩阵可以看成是二维列表,外围列表指的就是矩阵的行,里面的列表就是对应的列,即a[1][2]代表第一行第二列. def Matrix(col,row): list = [] if col or row: for i in range(1,row+1): list2 = [] for j in range(1…
day29 --------------------------------------------------------------- 实例043:作用域.类的方法与变量 题目 模仿静态变量(static)另一案例. 程序分析 综合实例041和实例042. 1 class dummy: 2 num=1 3 def Num(self): 4 num = 3 5 print('class dummy num:',self.num) 6 print('global num: ',num) 7 se…
day27 --------------------------------------------------------------- 实例041:类的方法与变量 题目 模仿静态变量的用法. 程序分析:直接上代码吧,构造类,了解类的方法与变量 1 def dummy(): 2 i=0 3 print(i) 4 i+=1 5 6 class cls: 7 i=0 8 def dummy(self): 9 print(self.i) 10 self.i+=1 11 12 a=cls() 13 f…
day26 --------------------------------------------------------------- 实例039:有序列表插入元素 题目 有一个已经排好序的数组.现输入一个数,要求按原来的规律将它插入数组中. 分析:原来的排序规律不知道,所以先判断原来的数组规律,再循环比对 1 def insert_arry(list, a): 2 if list[0]<=list[-1]: 3 for i in range(len(list)): 4 if list[i]…
day25 --------------------------------------------------------------- 实例038:矩阵对角线之和 题目 求一个3*3矩阵主对角线元素之和. 分析:不知道3*3矩阵怎么处理,看答案是列表套列表,所以直接上答案吧 1 mat=[[1,2,3,4], 2 [1,2,3,4], 3 [1,2,3,4], 4 [1,2,3,4] 5 ] 6 count = 0 7 for i in range(len(mat)): 8 count +=…
day24 --------------------------------------------------------------- 实例037:排序 题目 对10个数进行排序. 分析:先输入10个数,用冒泡排序就行了 1 while True: 2 c = input("请输入要排序的数,以逗号隔开:") 3 a = c.split(",") 4 print(a) 5 for i in range(len(a)): 6 for j in range(1,le…
day21 --------------------------------------------------------------- 实例030:回文数 题目 一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同. 分析:回文数不就是一个数等于它的倒序吧,直接输出所有5位的回文数. 1 def is_num(n): 2 n = str(n) 3 if n == n[::-1]: 4 print(f"{n}是回文数") 5 n = 10000 6 w…
day20 --------------------------------------------------------------- 实例028:递归求等差数列 题目 有5个人坐在一起,问第5个人多少岁?他说比第4个人大2岁.问第4个人岁数,他说比第3个人大2岁.问第3个人,又说比第2人大两岁.问第2个人,说比第1个人大两岁.最后问第1个人,他说是10岁.请问第5个人多大? 分析:递归有递归体和结束条件及结束的处理办法,递归体就是+2,结束就是第几个人,然后一级一级返回当前年龄即可. 1…
day19 --------------------------------------------------------------- 实例027:递归输出 题目 利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来. 分析:相反顺序可以用列表来,直接pop方法. 1 def reverseprint(a): 2 lit = list(a) 3 if len(lit)>0: 4 print(lit.pop()) 5 a = "".join(lit) 6 reverse…
day17 --------------------------------------------------------------- 实例025: 阶乘求和 题目 求1+2!+3!+-+20!的和. 分析:阶乘嘛,写两个函数解决,一个返回阶乘,一个求和... 1 def a(x): 2 tmp = 1 3 if x>1: 4 for i in range(1,int(x)+1): 5 tmp *= i 6 return tmp 7 8 def ct(x): 9 tmp = 0 10 for…
day15 --------------------------------------------------------------- 实例022:画菱形 题目 打印出如下图案(菱形):. * *** ***** ******* ***** *** * 分析:一个循环控制高度,再分上下两部分输出,循环空格+*,代码如下,感觉有点多 1 a = input("请输入菱形的高度:") 2 h = int((int(a)+1)/2) 3 for i in range(1,int(a)+1…
day14 --------------------------------------------------------------- 实例022:比赛对手 题目 两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人.已抽签决定比赛名单.有人向队员打听比赛的名单.a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单. 分析:来一个最简单暴力的,很不完美,先是生成所有组合的列表list2,再逐步筛选list2,看这近20行的代码头大... 1 jia = ["a…
day13 --------------------------------------------------------------- 实例021:猴子偷桃 题目 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上想再吃时,见只剩下一个桃子了.求第一天共摘了多少. 分析:反向推断,第一天摘1个桃子,第二天会摘(1+1)x2个桃子....第9天会摘xxx个桃子?代码如…
day12 --------------------------------------------------------------- 实例019:完数 题目 一个数如果恰好等于它的因子之和,这个数就称为"完数".例如6=1+2+3.编程找出1000以内的所有完数. 分析:如果能被a整除,那么a是因子,放入一个列表然后再求和,与原被除数相等,就是完数 1 for i in range(1,int(a)): 2 list = [] 3 if i >1: 4 for j in r…
day11 --------------------------------------------------------------- 实例018:复读机相加 题目 求s=a+aa+aaa+aaaa+aa-a的值,其中a是一个数字.例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制. 分析:很简单,字符串*x可以复制. 1 a = input('请输入数字:') 2 n = input("请输入要加几次:") 3 s = 0 4 for i in…