python快速编程入门-期末版一版课后习题

本是古典 何须时尚 2022-04-16 00:27 704阅读 0赞

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

不喜勿喷~

python书中课后习题:

黑马程序员:
第一章:python概述
1、编程实现打印
这里写图片描述

  1. print("+++++++++++")print("+ +")print("+++++++++++")
  2. 1
  3. 2
  4. 3

第二章 python基础语法
2、由三角形两直角边求斜边长度

  1. import math a=float(input("请输入斜边 1 的长度")) #输入实数 b=float(input("请输入斜边 2 的长度")) #输入实数 c=a*a+b*b #计算,得到的是斜边的平方 c=sqrt(c) #开方,得到的是斜边长 print("斜边长为:",c) #显示,一项是字符串,一项是 c 表示的斜边长
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7

3、编写一个程序实现两个数进行交换

  1. # 用户输入x = input('输入 x 值: ')y = input('输入 y 值: ')# 不使用临时变量x,y = y,xprint('交换后 x 的值为: {}'.format(x))print('交换后 y 的值为: {}'.format(y))
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8

第三章 python基础语法
4、编写程序使用for循环实现输出0-10之间的整数

  1. for i in range(1,11): print(i)
  2. 1
  3. 2
  4. 3

5、编写程序判断用户输入的是正数还是负数

  1. a=int(input("请输入一个数:")) if a>0: print("a是一个正数") elif a<0: print("a是一个负数") else: print("a等于0")
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8

6、编写一个程序,输出九九乘法表

  1. i=1 while i<10: j=1 while j<=i: print("%d*%d=%-2d "%(i,j,i*j),end='') j+=1 print("\n") i+=1
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9

第四章 python基础语法
7、接收输入的一行字符,统计出字符串中包含数字的个数。

  1. myStr = input("请输入任意字符串:")num = 0for s in myStr: if s.isdigit(): num += 1print(num)
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7

8、请输入星期几的第一个字母,用来判断是星期几,如果第一个字母一样,则继续判断第二个字母,依此类推。

  1. week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']while True: myStr = input("请输入任意一个字母:") upMyStr = myStr.upper() for weekS in week: if upMyStr == weekS[0]: if weekS.startswith("M"): print("星期一") elif weekS.startswith("W"): print("星期三") elif weekS.startswith("F"): print("星期五") elif weekS.startswith("T") or weekS.startswith("S"): secondStr = input("请再输入任意一个字母:") newStr = upMyStr+secondStr print(newStr) for weekStr in week: if weekStr.find(newStr,0,2) != -1: if newStr == "Tu": print("星期二") elif newStr == "Th": print("星期四") elif newStr == "Sa": print("星期六") elif newStr == "Su": print("星期日") break break
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11. 10
  12. 11
  13. 12
  14. 13
  15. 14
  16. 15
  17. 16
  18. 17
  19. 18
  20. 19
  21. 20
  22. 21
  23. 22
  24. 23
  25. 24
  26. 25
  27. 26
  28. 27
  29. 28
  30. 29

9、编写一个程序,计算字符串中字串出现的次数

  1. str = "Hello,welcome to itheima!!"print(str.count("o"))
  2. 1
  3. 2
  4. 3

第五章 python基础语法
10、编写一个函数,用于判断输入字符串是否由小写字母和字符串构成

  1. def message(): myStr = input("请输入密码,只能为字母和数字:") if myStr.isalnum(): print("符合要求") else: print("不符合要求")
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6

11、用户输入一个字符串,将下标为偶数的字符串提出来合并为一个新的字符串A,再将下标为奇数的字符提出来合并成为一个新的字符串B,再将字符串A和B连接起来并且输出

  1. arr = []evenStr = ""oddStr = ""message = input("请输入任意字符串:")for string in message: arr.append(string)for eStr in (arr[::2]): evenStr = evenStr+eStrfor oStr in (arr[1::2]): oddStr = oddStr+oStrprint(evenStr+oddStr)
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11. 10
  12. 11
  13. 12

12、请编写一个程序,用于统计字符串中每个字母出现的次数(字母忽略大小写,a和A看做是一个字母),统计出的结果,请按照【‘a’:3,’b’:2】的格式输出

  1. arr = []def count(): myStr = input("请输入只包含字母的字符串:") if myStr.isalpha(): newStr = myStr.lower() for string in newStr: arr.append(string) a = {} for i in arr: if arr.count(i) >= 1: a[i] = arr.count(i) print(a) else: print("输入的内容有误")count()
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11. 10
  12. 11
  13. 12
  14. 13
  15. 14
  16. 15
  17. 16

13、用户输入一个字符串,请将字符串中所有字母全部后移一位,最后一个字母放到字符串的开头,最后将新的字符串输出。

  1. arr = []result = ""myStr = input("请输入字符串:")for string in myStr: arr.append(string)last = arr[-1]arr.remove(last)arr.insert(0,last)for new in arr: result = result + newprint(result)
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11. 10
  12. 11
  13. 12

14、假设有个列表存储奇数个数字,请编写程序,输出中间位置的数字。

  1. arr = []result = ""myStr = input("请输入字符串:")for string in myStr: arr.append(string)last = arr[-1]arr.remove(last)arr.insert(0,last)for new in arr: result = result + newprint(result)
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11. 10
  12. 11
  13. 12

15、已知info=[1,2,3,4,5],请通过两种编程方法,将列表编程info=[5,4,3,2,1]

  1. 第一种:arr = [1,2,3,4,5]arr.reverse()print(arr)
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 第二种:arr = [1,2,3,4,5]arr.sort(reverse=True)print(arr)
  8. 1
  9. 2
  10. 3
  11. 4
  12. 5

15、用户输入n,然后输入n个整数到列表中,列表中的n个整数需要使用冒泡进行排序,排序后结果输出。

  1. arr = []length = int(input("请输入数字的总个数:"))i = 0while i < length: num = int(input("输入第%d个数字:"%(i+1))) arr.append(num) i+=1print("排序前:%s"%arr)# 对列表排序for i in range(length): flag = 0 for j in range(1,length): if arr[j-1] > arr[j]: arr[j-1],arr[j] = arr[j],arr[j-1] flag = 1 if not flag: breakprint("排序后:%s"%arr)
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11. 10
  12. 11
  13. 12
  14. 13
  15. 14
  16. 15
  17. 16
  18. 17
  19. 18
  20. 19

16、请编写一个程序,实现删除列表中重复元素的功能。

  1. arr = []length = int(input("请输入列表的总个数:"))i = 0while i < length: element = input("输入第%d个元素:"%(i+1)) arr.append(element) i+=1# 列表转为集合newList = set(arr)print(newList)
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11. 10
  12. 11

17、假设有两个3*3的矩阵,请编写一个程序,计算两个矩阵的和并输出。

  1. def add(a, b): # 下面两行保证输入的a和b是维数相同的矩阵,根据实际情况不要也可以 assert (len(a) == len(b)) assert (all([len(a[i]) == len(b[i]) == len(a[0]) for i in range(len(a))])) i, j = len(a), len(a[0]) c = [[0] * j] * i for m in range(i): for n in range(j): c[m][n] = a[m][n] + b[m][n] return ca = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]b = [[9, 8, 7], [6, 5, 4], [3, 2, 1]]c = add(a, b)print(c)
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11. 10
  12. 11
  13. 12
  14. 13
  15. 14
  16. 15

18、请编写一个程序,使用字典存储学生信息,学生信息包括学生学号,姓名,请根据学生学号从小到大输出学生信息。

  1. dic = {}i=0while i<3: number = input("输入学生学号:") name = input("输入学生姓名:") dic.__setitem__(number,name) i+=1print("排序前:%s"%dic)def dict2list(dic:dict): ''' 将字典转化为列表 ''' keys = dic.keys() vals = dic.values() lst = [(key, val) for key, val in zip(keys, vals)] return lstnew = sorted(dict2list(dic), key=lambda x:x[0], reverse=False)print("排序后:%s"%new)
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11. 10
  12. 11
  13. 12
  14. 13
  15. 14
  16. 15
  17. 16
  18. 17

19、已知一个字典包括若干员工信息(姓名和性别),请编写一个函数,删除性别为男的员工信息。

  1. def delMale(dict): keys = [] values = [] for (key,value) in dict.items(): keys.append(key) values.append(value) for value in values: if value == 0: index = values.index(value) arrKey = keys[index] del dict[arrKey] values[index] = 3 keys[index] = "占位"dic = {
  2. "小明":0, "小红":1,"小兰":1,"小白":0}print("删除前:%s"%dic)delMale(dic)print("删除后:%s"%dic)
  3. 1
  4. 2
  5. 3
  6. 4
  7. 5
  8. 6
  9. 7
  10. 8
  11. 9
  12. 10
  13. 11
  14. 12
  15. 13
  16. 14
  17. 15
  18. 16
  19. 17
  20. 18

20、已知一个列表存储了多个整数,请编写函数,删除列表中的素数。

  1. arr = [12,3,37,7,91,67,27,45,6]def delPrime(arr): for element in arr: # 质数大于 1 if element > 1: # 查看因子 for i in range(2, element): if (element % i) == 0: break else: arr.remove(element)delPrime(arr)print(arr)
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11. 10
  12. 11
  13. 12
  14. 13
  15. 14

第六章 python基础语法
21、定义一个getMax()函数,返回三个数(从键盘输入的整数)中的最大值。

  1. def getMax(): num1 = int(input("请输入第1个整数:")) num2 = int(input("请输入第2个整数:")) num3 = int(input("请输入第3个整数:")) temp = 0 # 临时变量,存放中间产生的第2大数值 if num1 > num2: temp = num1 else: temp = num2 if temp>num3: return "其中最大值为:"+ str(temp) else: return "其中最大值为:"+ str(num3)maxValue = getMax()print(maxValue)
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11. 10
  12. 11
  13. 12
  14. 13
  15. 14
  16. 15
  17. 16

22、编写一个函数,求出1/(1*2)-1/(2*3)+ 1/(3*4)-1/(4*5)~前n项和,函数以n为参数,他是用户输入的。

  1. def sum(n): res = 0 while n >= 1: if n%2 == 0: res -= 1.0/(n*(n+1)) else: res += 1.0/(n*(n+1)) n-=1 return resnum = int(input("请输入一个整数:"))print(sum(num))
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11. 10
  12. 11
  13. 12

23、写一个函数确定一个数是否为回文数。

  1. def is_palindrome(n): n=str(n) m=n[::-1] return n==mresult = is_palindrome(1247321)print(result)
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7

24、编写函数,判断输入的三个数是否能构成三角形的三个边。

  1. def sjx(a, b, c): if (a + b > c and a + c > b and b + c > a): return "能构成三角形" else: return "不能构成三角形"result1 = sjx(3, 4, 5)print(result1)result2 = sjx(1, 1, 2)print(result2)
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11. 10

25、编写函数,求两个正整数的最小公倍数。

  1. # 定义函数def lcm(x, y): # 获取最大的数 if x > y: greater = x else: greater = y while(True): if((greater % x == 0) and (greater % y == 0)): lcm = greater break greater += 1 return lcm# 获取用户输入num1 = int(input("输入第一个数字: "))num2 = int(input("输入第二个数字: "))print( num1,"和", num2,"的最小公倍数为", lcm(num1, num2))
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11. 10
  12. 11
  13. 12
  14. 13
  15. 14
  16. 15
  17. 16
  18. 17
  19. 18

第七章 python基础语法
26、已知有个列表[1,2,3,4,5],让列表中的每个元素加1,把结果不能被2整除的元素筛选出来。

  1. result = filter(lambda x:(x+1)%2, [1, 2, 3, 4, 5])print(result)
  2. 1
  3. 2
  4. 3

第八章 python基础语法
27、读取一个文件,显示以#开头的行以外的所有行。

  1. new = []f = open('itheima.txt', 'r')contents = f.readlines()for ele in contents: if ele.startswith('#') == False: new.append(ele)print(new)f.close()
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9

28、制作一个密码簿,其可以存储一个网址和一个密码,请编写程序完成这个密码簿的增删查改功能,并且实现文件存储功能。

  1. # 密码薄passwordBook = {}def add(password, value): if password not in passwordBook.keys(): passwordBook[password] = value save() else: print("该密码已存在")def delete(password): if password in passwordBook.keys(): del passwordBook[password] print(passwordBook) save() else: print("该密码不存在")def modify(password, newValue): if password in passwordBook.keys(): passwordBook[password] = newValue print(passwordBook) save() else: print("该密码不存在")def find(value): if value in passwordBook.values(): print("该网址存在") else: print("该网址不存在")def save(): f = open("password.txt","w") f.write(str(passwordBook)) f.close()def printInfo(): print("密码簿的功能如下:") print("1.添加") print("2.删除") print("3.修改") print("4.查找")i = 0while i<5: printInfo() num = int(input("请输入要选择的功能:")) if num==1: web = input("请输入存入的网址:") password1 = input("请输入密码:") add(password1, web) print(passwordBook) elif num==2: password2 = input("请输入密码:") delete(password2) elif num==3: password3 = input("请输入密码:") value3 = input("请输入新的网址:") modify(password3,value3) elif num==4: value4 = input("请输入要查找的网址:") find(value4) i+=1
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11. 10
  12. 11
  13. 12
  14. 13
  15. 14
  16. 15
  17. 16
  18. 17
  19. 18
  20. 19
  21. 20
  22. 21
  23. 22
  24. 23
  25. 24
  26. 25
  27. 26
  28. 27
  29. 28
  30. 29
  31. 30
  32. 31
  33. 32
  34. 33
  35. 34
  36. 35
  37. 36
  38. 37
  39. 38
  40. 39
  41. 40
  42. 41
  43. 42
  44. 43
  45. 44
  46. 45
  47. 46
  48. 47
  49. 48
  50. 49
  51. 50
  52. 51
  53. 52
  54. 53
  55. 54
  56. 55
  57. 56
  58. 57
  59. 58

29、已知文本文件中存放了若干数字,请编写程序读取所有的数字,排序以后进行输出。

  1. f = open("itheima.txt","r")content = list(eval(f.read()))content.sort()print(content)
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5

30、打开一个英文的文本文件,将该文件中的每一个英文字母加密后写入到一个新的文件。加密的方法是:将A变成B,将B变成C,将C变成D等,将a变成b等。
其他字符不变。

  1. f = open("itheima.txt","r")content = f.read()newStr = ""for string in content: temp = ord(string) if temp in range(65,91): if temp == 90: char1 = chr(temp-25) newStr += char1 else: char2 = chr(temp+1) newStr += char2 elif temp in range(97,123): if temp == 122: char3 = chr(temp-25) newStr += char3 else: char4 = chr(temp + 1) newStr += char4 else: newStr = newStr+stringf.close()f2 = open("itheima-加密后.txt","w")f2.write(newStr)f2.close()
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11. 10
  12. 11
  13. 12
  14. 13
  15. 14
  16. 15
  17. 16
  18. 17
  19. 18
  20. 19
  21. 20
  22. 21
  23. 22
  24. 23
  25. 24
  26. 25
  27. 26

31、打开一个英文文本文件,编写程序读取其内容,并把其中的大写字母变成小写字母,小写字母变成大写字母。

  1. f = open(r'd:\1.txt','r') s = f.readlines() f.close() r = [i.swapcase() for i in s] f = open(r'd:\2.txt','w') f.writelines(r) f.close()
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8

32、编写程序,把包含学生成绩的字典保存为二进制文件,然后再读取内容并显示。

  1. import pickle d = {
  2. '张三':98,'李四':90,'王五':100} print(d) f = open('score.dat','wb') pickle.dump(1,f) pickle.dump(d,f) f.close f = open('score.dat','rb') pickle.load(f) d = pickle.load(f) f.close() print(d)
  3. 1
  4. 2
  5. 3
  6. 4
  7. 5
  8. 6
  9. 7
  10. 8
  11. 9
  12. 10
  13. 11
  14. 12
  15. 13

33、假设成年人的体重和身高存在此种关系:
身高-100=标准体重
如果一个人的体重与其标准体重的差值在正负5%之间,显示体重正常,其他显示体重超标或者体重不超标,编写程序,能处理用户输入的异常,并且使用自定义异常类来处理身高小于30cm,大于250cm的异常情况。

  1. class HeightException(Exception): passtry: height = int(input("请输入您的身高:")) if height<30 or height>250: raise HeightException weight = int(input("请输入您的体重:")) weightS = height-100 if weight > weightS and weight-weightS < 0.05*weightS: print("体重达标") elif weight < weightS and weightS-weight < 0.05*weightS: print("体重达标") else: print("体重不达标")except HeightException: print("您输入的身高有误")
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11. 10
  12. 11
  13. 12
  14. 13
  15. 14
  16. 15
  17. 16
  18. 17

34、录入一个学生的成绩,把该学生的成绩转换为A优秀B良好C合格D不合格的形式,最后将学生的成绩打印出来,要求使用assert断言处理分数不合理的情况。

  1. try: score = int(input("请输入学生的成绩:")) if score>=90 and score<=100: print("A:优秀") elif score>=80 and score<90: print("B:良好") elif score>=60 and score<80: print("C:合格") else: assert score>60,"D:不及格"except Exception as result: print("低于60分:\n",result)
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11. 10
  12. 11
  13. 12
  14. 13

第十章 python模块
创建一个模块文件,它用于互换两个数的值。

  1. def changeNum1AndNum2(num1, num2): temp = num1 num1 = num2 num2 = temp return (num1, num2)
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6

第十一章pyhton面向对象编程上
设计一个circle类,包括圆心位置、半径、颜色等属性。编写构造方法和其他方法,计算周长和面积。请编写程序验证类的功能。

  1. class Circle: def __init__(self,tup, radius, color): self.center = tup self.radius = radius self.color = color def perimeter(self): return 3.14 * 2 * self.radius def area(self): return 3.14 * self.radius * self.radiuscircle = Circle((0,0),5,"蓝色")print(circle.perimeter())print(circle.area())
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11. 10
  12. 11
  13. 12
  14. 13

设计一个课程类,包括课程编号,课程名称,任课教师,上课地点等属性,把上课地点变量设为私有的,增加构造方法和显示课程信息的方法。

  1. class Curriculum: def __init__(self): self.number = 1001 self.name = "语文" self.teacher = "小明" self.__address = "2号教学楼3层305室" def __str__(self): return """ 课程编号:%d 课程名称:%s 任课教师:%s 上课地点:%s """%(self.number,self.name,self.teacher,self.__address)curri = Curriculum()print(curri)
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11. 10
  12. 11
  13. 12
  14. 13
  15. 14
  16. 15
  17. 16

第十二章面向对象编程下
设计一个表示学生的类(student)类,该类的属性有姓名(name),年龄(age),成绩(score)(成绩包含语文、数学、英语三科成绩,每科成绩的类型为整数),另外有三个方法。
(1)获取学生的方法:get_name(),返回类型为string,
(2)获取年龄的方法:get_age(),返回类型为int
(3)返回3门科目中最高的分数:get_course(),返回类型为int
设计一个表示动物(animals)的类,该类包含颜色(color)属性和叫(call)的方法,再设计一个表示鱼(fish)的类,包括尾巴(tail)和颜色(color)两个属性,及叫(call)的方法

  1. class Animal(object): def __init__(self, color): self.color = color #颜色 def call(self): print("动物叫")class Fish(Animal): def __init__(self, color): super().__init__(color) self.tail = True def call(self): print("-%s的鱼在吐泡泡-"%self.color)fish = Fish("蓝色")fish.call()
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11. 10
  12. 11
  13. 12
  14. 13
  15. 14

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

这里写图片描述

发表评论

表情:
评论列表 (有 0 条评论,704人围观)

还没有评论,来说两句吧...

相关阅读