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

2023-11-05

不喜勿喷~

python书中课后习题:

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

print("+++++++++++")
print("+         +")
print("+++++++++++")

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

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

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

# 用户输入
x = input('输入 x 值: ')
y = input('输入 y 值: ')
# 不使用临时变量
x,y = y,x
print('交换后 x 的值为: {}'.format(x))
print('交换后 y 的值为: {}'.format(y))

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

for i in range(1,11):
    print(i)

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

a=int(input("请输入一个数:"))
    if a>0:
            print("a是一个正数")
    elif a<0:
        print("a是一个负数")
    else:
        print("a等于0")

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

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

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

myStr = input("请输入任意字符串:")
num = 0
for s in myStr:
    if s.isdigit():
        num += 1
print(num)

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

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

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

str = "Hello,welcome to itheima!!"
print(str.count("o"))

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

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

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

arr = []
evenStr = ""
oddStr = ""
message = input("请输入任意字符串:")
for string in message:
    arr.append(string)
for eStr in (arr[::2]):
    evenStr = evenStr+eStr
for oStr in (arr[1::2]):
    oddStr = oddStr+oStr
print(evenStr+oddStr)

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

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()

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

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 + new
print(result)

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

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 + new
print(result)

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

第一种:
arr = [1,2,3,4,5]
arr.reverse()
print(arr)
第二种:
arr = [1,2,3,4,5]
arr.sort(reverse=True)
print(arr)

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

arr = []
length = int(input("请输入数字的总个数:"))
i = 0
while i < length:
   num =  int(input("输入第%d个数字:"%(i+1)))
   arr.append(num)
   i+=1
print("排序前:%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:
        break
print("排序后:%s"%arr)

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

arr = []
length = int(input("请输入列表的总个数:"))
i = 0
while i < length:
   element =  input("输入第%d个元素:"%(i+1))
   arr.append(element)
   i+=1
# 列表转为集合
newList = set(arr)
print(newList)

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

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 c
a = [[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)

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

dic = {}
i=0
while i<3:
     number = input("输入学生学号:")
     name = input("输入学生姓名:")
     dic.__setitem__(number,name)
     i+=1
print("排序前:%s"%dic)
def dict2list(dic:dict):
    ''' 将字典转化为列表 '''
    keys = dic.keys()
    vals = dic.values()
    lst = [(key, val) for key, val in zip(keys, vals)]
    return lst
new = sorted(dict2list(dic), key=lambda x:x[0], reverse=False)
print("排序后:%s"%new)

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

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 = {"小明":0, "小红":1,"小兰":1,"小白":0}
print("删除前:%s"%dic)
delMale(dic)
print("删除后:%s"%dic)

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

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)

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

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)

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

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 res
num = int(input("请输入一个整数:"))
print(sum(num))

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

def is_palindrome(n):
    n=str(n)
    m=n[::-1]
    return n==m
result = is_palindrome(1247321)
print(result)

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

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)

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

# 定义函数
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))

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

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

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

new = []
f = open('itheima.txt', 'r')
contents = f.readlines()
for ele in contents:
    if ele.startswith('#') == False:
        new.append(ele)
print(new)
f.close()

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

# 密码薄
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 = 0
while 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

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

f = open("itheima.txt","r")
content = list(eval(f.read()))
content.sort()
print(content)

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

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+string
f.close()
f2 = open("itheima-加密后.txt","w")
f2.write(newStr)
f2.close()

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

 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()

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

import pickle 
d = {'张三':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) 

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

class HeightException(Exception):
    pass
try:
    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("您输入的身高有误")

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

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)

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

def changeNum1AndNum2(num1, num2):
    temp = num1
    num1 = num2
    num2 = temp
    return (num1, num2)

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

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.radius
circle = Circle((0,0),5,"蓝色")
print(circle.perimeter())
print(circle.area())

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

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)

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

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()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python快速编程入门-期末版一版课后习题 的相关文章

随机推荐

  • 【区块链技术工坊28期实录】王灏:区块链场景应用研究(区块链+旅游)

    1 活动基本信息 1 题目 区块链技术工坊28期 区块链场景应用研究 区块链 旅游 2 议题 随着全球经济的持续发展 旅游业展现出强大生命力 据WTTC与牛津 经济研究院统计 2017年增长3 8 创造价值高达7 9万亿美元 旅游行业的迅速
  • 如何开启多个独立Chrome浏览器

    一 简介 作为测试或者开发人员 有些情况下会用到 Chrome 浏览器 但有时是同一个 Chrome 浏览器无法为我们提供隔离开的不同环境 这样 我们就需要清理 cache 切换账号等 降低了我们的工作效率 今天的主题是如何开启多个独立的
  • STM32——CAN控制器原理与配置

    一 CAN控制器简介 STM32自带了基本扩展CAN外设 又称bxCAN bxCAN的特点如下 1 支持CAN协议2 0A和2 0B主动模式 2 波特率最高达1Mbps 3 支持时间触发通信 4 具有3个发送邮箱 5 具有3级深度的2个接收
  • Java程序员值得探索的五种新编程语言,Python是首选?

    我们程序员就要常换常新 老用一种语言是会厌倦的 学什么语言能我们精进不已 一起来看本文 作为程序员 要想探索新事物 学习新的编程语言会为自己解决问题提供更多的视角 那么 Java开发人员应该探索哪些新语言 学习Java 8 9 中的函数式和
  • MQTT发布订阅程序完整代码

    工具类 包含有发布者方法和订阅者方法 package cn com bonc wholeCode import org eclipse paho client mqttv3 import org eclipse paho client mq
  • 【整理四】

    1 Vue组件通信 pops emit 父组件通过props向子组件传递数据 子组件通过 emit和父组件通信 Ref refs ref这个属性用在子组件上 指向子组件的实例 可以通过实例访问组件的数据和方法 EventBus事件总线 em
  • 基于双向长短期记忆网络(BILSTM)数据回归预测,多变量BILSTM回归预测,MATLAB代码。评价指标包括:R2、MAE、MSE、RMSE和MAPE等,代码质量极高,方便学习和替换数据。

    清空环境变量 warning off 关闭报警信息 close all 关闭开启的图窗 clear 清空变量 clc 清空命令行 restoredefaultpath tic 导入数据 P train xlsread data traini
  • 初识Java

    目录 一 Java语言概述 1 Java是什么 2 Java语言发展简史 二 第一个Java程序 1 简单的 HelloWorld 2 运行Java程序 三 注释 四 标识符 五 关键字 一 Java语言概述 1 Java是什么 是一种编程
  • UnityRPG游戏中的球形检测范围

    先上图 一些RPG游戏中 可以用这种方法检测玩家 我个人感觉这个方法比直接给敌人加触发器 要来得方便一些 注意 脚本是根据tag标签来检测玩家的 请勿忘记给玩家添加标签 using UnityEngine
  • NGINX服务器的配置文件是,Nginx conf配置文件结构

    Nginx conf配置文件结构 Nginx默认的服务器配置文件存放于conf目录中 主配置文件名为conf 在Nginx服务器的配置文件中 注释是以 标志为开头 如 这里是注释信息 nginx服务器会忽略此行 nginx conf配置文件
  • RabbitMQ web页面连接报错could not connect to server since

    RabbitMQ web页面连接报错could not connect to server since Error could not connect to server since 2021 08 23 23 37 33 Will ret
  • 腾讯难成算法帝国

    腾讯难成算法帝国 https mp weixin qq com s ceVUyuVeYtCPOCSgMNAStg 本文从一个全新的角度 数据及算法 对腾讯这家公司抽丝剥茧 进行了全面的分析 作者认为 如果腾讯能够重视大数据并极大提升它的算法
  • 设置可执行程序的名称

    argc 命令行参数的个数 argv 是个数组 每个数组元素都是指向一个字符串的 char 里边存储的内容是所有命令行参数 argv 内存之后接着就是连续的环境变量参数信息内存 里边存储的内容是可执行程序执行时有关的所有环境变量参数信息 可
  • 立创梁山派GD32F470ZGT6--硬件SPI+DMA的快速刷屏

    准备 屏幕 使用SPI接口的1 69寸240x280TFT彩屏 主控 使用立创 梁山派GD32F470ZGT6 屏幕与主控的连接 使用硬件SPI DMA的方式刷屏 一般我们拿到一个屏幕首先需要移植厂商提供的官方代码进行亮屏测试 这里我们就不
  • 阿里云存储图片x-oss-process常用方法处理

    图片缩放至80 转换为webp格式 质量为原来的80 转换后尺寸为480px 320px x oss process image resize p 80 format webp quality q 80 宽度调整为180 通常只调整至指定宽
  • 【考研先知】

    官网 中国研究生招生信息网https yz chsi com cn 考试流程 学硕专硕 AB区 地区 A区 北京 天津 上海 江苏 浙江 福建 山东 河南 湖北 湖南 广东 河北 山西 辽宁 吉林 黑龙江 安徽 江西 重庆 四川 陕西21个
  • 在H+框架下的一个给iframe 的body 添加事件。

    需求 在后台框架下面点击F5的时候只刷新子页面 不刷新主站点 菜单表来自同域名下的不同的站点 里面涉及到跨域问题 通过document domain可解决 想法在点击F5的时候阻止父页面的刷新 并获取当前iframe的src 重新刷新即可
  • 分子图形学(转载自维基,英文)

    分子图形学 来自http en wikipedia org wiki Molecular graphics Molecular graphics MG is the discipline and philosophy of studying
  • 单片机开发---基于ESP32-CAM的人脸识别应用

    背景 学习了一下OpenCV 熟悉了一点基础概念 就寻找了一下单片机上能否支持人脸识别 用来做一些小玩意 结果还真发现了一个模块叫ESP32 CAM ESP32 CAM算得上是一款最便宜的支持人脸识别的单片机开发板了 性能算是单片机里相当不
  • python快速编程入门-期末版一版课后习题

    不喜勿喷 python书中课后习题 黑马程序员 第一章 python概述 1 编程实现打印 print print print 第二章 python基础语法 2 由三角形两直角边求斜边长度 import math a float input