精华内容
下载资源
问答
  • Python快速编程入门课后程序题答案

    万次阅读 多人点赞 2019-06-19 23:17:45
    本文只是简单的整理了一下课后习题的编程题,具体的填空、选择、判断可以见:Python快速编程入门课后习题答案 第一章 1、编写一个Python程序,输出如下图效果。 ++++++++++ + + ++++++++++ print("+++++++++++...

    前言

    本文只是简单的整理了一下课后习题的编程题,具体的填空、选择、判断可以见:Python快速编程入门课后习题答案

    第一章

    1、编写一个Python程序,输出如下图效果。

    ++++++++++
    +        +
    ++++++++++

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

    2、编写一个Python程序,输出如下语句。

    学Python,来传智播客黑马程序员
    学Python,来传智播客黑马程序员
    学Python,来传智播客黑马程序员
    学Python,来传智播客黑马程序员
    学Python,来传智播客黑马程序员

    print("学Python,来传智播客黑马程序员")
    print("学Python,来传智播客黑马程序员")
    print("学Python,来传智播客黑马程序员")
    print("学Python,来传智播客黑马程序员")
    print("学Python,来传智播客黑马程序员")

    第二章

    1、输入直角三角形的两个直角边的长度a、b,求斜边c的长度。

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

    2、编写一个程序,用于实现两个数的交换。

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

    第三章

    1、编写一个程序,使用for循环输出0~10之间的整数。

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

    2、编写一个程序,判断用户输入的数是正数还是负数。

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

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

    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
    

    第四章

    1、接收输入的一行字符,统计出字符串中包含数字的个数。

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

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

    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
    

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

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

    第五章

    1、编写一个函数,用于判断用户输入字符串是否由小写字母和数字构成。

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

    2、请根据下述需求,编写一个程序。

    用户输入一个字符串,将下标为偶数的字符提出来合并为一个新的字符串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)
    

    3、请编写一个程序,用于统计字符串中每个字母出现的次数(字母忽略大小写,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()
    

    4、请根据下列需求,编写一个程序。

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

    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)
    

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

    arr = []
    n = int(input("请输入列表元素的个数(奇数):"))
    for i in range(n):
        num = int(input("请输入第%d个数:"%(i+1)))
        arr.append(num)
    arr.sort()
    print("该列表中间位置的数字为:",arr[n//2])
    

    6、已知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)
    

    7、请编写一个函数满足下列需求:

    用户输入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)
    

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

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

    9、假设有两个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)
    

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

    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)
    

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

    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)
    

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

    # 错误的版本
    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)
    # 正确的版本
    arr1 = [12,3,37,7,91,67,27,45,6]
    arr2 = [12,3,37,7,91,67,27,45,6]
    def delPrime(arr1):
        for element in arr2:
            # 质数大于 1
            if element > 1:
                # 查看因子
                for i in range(2, element):
                    if (element % i) == 0:
                        break
                else:
                    arr1.remove(element)
    delPrime(arr1)
    print(arr1)
    

    第六章

    1、定义一个getMax()函数,返回三个数(从键盘输入的整数)中的最大值。
    例如:

    请输入第1个整数:10
    请输入第2个整数:15
    请输入第3个整数:20
    其中最大值为:20

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

    3、回文数是一个正向和逆向都相同的整数,如 123454321、9889。编写函数判断一个整数是否是回文数。

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

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

    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)
    

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

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

    第七章

    1、已知有个列表[1,2,3,4,5],让列表的每个元素加1,把结果不能被2整除的元素筛选出来。

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

    第八章

    1、读取一个文件,显示除了以#开头的行以外的所有行。

    new = []
    f = open('itheima.txt', 'r')#首先要有这个函数
    contents = f.readlines()
    for ele in contents:
        if ele.startswith('#') == False:
            print(ele)
    f.close()
    

    2、制作一个“密码簿”,其可以存储一个网址(如www.itcast.cn)和一个密码(如123456),请编写程序完成这个“密码簿”的增删查改功能,并且实现文件存储功能。

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

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

    f = open("itheima.txt","r")#首先要有这个文件
    content = list(eval(f.read()))
    content.sort()
    print(content)
    

    4、打开一个英文的文本文件,将该文件中的每一个英文字母加密后写入到一个新的文件。加密的方法是:将A变成B,B变成C,······,Y变成Z,将Z变成A;a变成b,b变成c,······,y变成z,z变成a,其他字符不变化。 

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

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

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

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

    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) 
    

    第九章

    1、假设成年人的体重和身高存在此种关系: 
                     身高(厘米)-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("您输入的身高有误")
    

    2、录入一个学生的成绩,把该学生的成绩转换为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)
    

    第十章 

    1、建一个模块文件。在该文件中,定义一个函数,用于交换两个数的值。

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

    第十一章

    1、设计一个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())
    

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

    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)
    

    第十二章

    1、设计一个表示学生的类:Student,该类的属性有)name(姓名,age(年龄),scores(成绩,包含语文、数学和英语三科成绩,每科成绩的类型为整数),另外此类还有3个方法。

    (1)获取学生的方法:get_name(),返回类型为str。
    (2)获取年龄的方法:get_age(),返回类型为int。
    (3)返回3门科目中最高的分数:get_course(),返回类型为int。

    class Student(object):
        # 构造方法
        def __init__(self, name, age, scores):
            self.__name = name     # 姓名
            self.__age = age       # 年龄
            self.__scores = scores # 分数
        def get_name(self):
            return self.__name
        def get_age(self):
            return self.__age
        def get_course(self):
            return max(self.__scores)
    stu = Student('小丸子', 18, [89, 90, 91])
    print("姓名:%s"%(stu.get_name()))
    print("年龄:%s"%(stu.get_age()))
    print("最高分:%s"%(stu.get_course()))
    

    2、设计一个表示动物的类:Animal,其内部有一个color(颜色)属性和call(叫)的方法。再设计一个表示Fish(鱼)类,该类中有tail(尾巴)和color属性,以及一个call(叫)方法。
    提示: 让Fish类继承自Animal类,重写init和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()
    展开全文
  • 编程入门

    千次阅读 热门讨论 2018-05-16 14:38:56
      这篇文章是特地为对编程有兴趣的同学特意准备的,非战斗人员请速速撤离。 0.选择一门编程语言   选择语言的话不需要纠结太多(但是不推荐易语言之流:),...我当初也是通过C语言入门的,这里面有很多故事...

      这篇文章是特地为对编程有兴趣的同学特意准备的,非战斗人员请速速撤离。

    0.选择一门编程语言

      选择语言的话不需要纠结太多(但是不推荐易语言之流:),因为编程语言都是大同小异。并且在你精通一门语言之后再去学另一种编程语言时,你会发现卧槽要死要死,这么简单。

    imgage

      如果你选择纠结症特别严重的话,那么我推荐你可以从C语言开始你的编程人生。我当初也是通过C语言入门的,这里面有很多故事以后在谈。扯回来,C语言是一门古老的语言。并且是一门面向过程的结构化语言。JAVA、C#、C++都诞生在其之后。所以选择C语言入门是你学习编程思想的不二之选。

    1.确定好语言之后的学习路线

      学习路线我不建议你去购买 ”入门到精通“ 之流的书籍。因为你购买到手之后你会发现 –我擦,这么厚?看到书的那一刻无形之中有股沉重感在心头蔓延~

    image

      推荐你上网搜索题目进行实践。编程这种事情,在书本上看十遍不如实际动手操作一遍。推荐的网站有:【开源中国】、【实验楼】、【CSDN】;这些网站都是非常友好的。编译器等等PDF随便一搜就有。在我的公众号上面也有之前我学习过程中收集的题目、视频、PDF,都是已经打包好了的。你可以通过回复 [ 资料 ] 获取。

    2.学习过程中可能遇到的问题

      其实,说到学习过程中遇到的问题。我很关心的是你们是否会产生想要放弃的想法。我想对你们说的是:学习这件事,最怕的就是三分钟热度。很多时候并不是你不行,而是你不想!有明确目标的人即使产生厌倦感也能够很快的找回状态。所有,我希望你们扪心自问是否有明确的目标?

    image

      如果是编程方面所遇到的难题,你可以上博客网站、论坛上去发帖留言,向大牛请教。当然,我也很乐意为你解决难题。在程序员这个行业,虽然很多人都看起来很呆萌。但其实你接触久了之后你会发现--其实就是一群闷骚的都比:P

    image

      说回来,网络中的资料杂七杂八,质量内容也是参差不齐的。在一定程度上学习资料会影响你的知识汲取速度。编程很简单,不要给自己设限。其实没什么大不了的。就和小学算数一样;

      记住,光看不练不行动是永远得不到结果的。不要想太多,直接动手实操就是最有效的学习!

    image

      遇到了难题,不要气馁。换一种思维,遇到了难题说明提升实力的时候来临了。你这次将这个难题解决后技术不是得到了进步?当下次,别人也同样遇到了相同的问题,这不是你装比的机会?

    : ) 很多时候思维决定你的高度。

    3.编程的前瞻

      我们现在所处的时代,遍地都是机会。对我个人而言,赶上了这个时代我觉得非常幸福!人工智能的崛起,各路行业大佬各显神通,在未来的几年中,所有的行业都会向智能化靠近。并且相对的很多传统行业都面临着失业的危险,人工智能将替代单一而重复的工作。

      而人工智能的崛起,程序员必将极度紧缺。所以,这个行业的前途会暗淡吗?

    image

    图片截取自TIOBE编程语言排行榜 2017年 - 11月

    展开全文
  • 入门java编程-我的世界mc编程入门

    万人学习 2015-07-23 10:11:24
    [oeasy]教你玩转java编程-我的世界mc编程入门

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 118,240
精华内容 47,296
关键字:

编程入门