重大希冀python基础题库答案

        5.23最新说明:重新刷一遍代码,看到能改的就改了,所以之前的低效代码会删掉,就会不一样。

        5.11声明:昨天说懒得更,今天闲来无事就更了,我还是太好了。不过题太多了,就差基础题库第六章的片段题没更,以后再说吧,出去散步了。        

        声明:因为题库自己更新了一次,导致我发布的题库并不完整,新的题目已写,但是懒得传,敬请期待。

        声明:本人是初学者学生,所有代码为本人一人学习过程中撰写,前后水平不一致,风格有变化,以及代码写得并不简洁优美,有许多可以改进、优化的地方,欢迎指正,修改。

        本帖根据我的进度持续更新,什么时候更新看我心情,关于作业,未到期的会发布,已经在机房做过的不再发布。

        答案都不是最优解,但也都做到了满分通过。代码过程不做讲解,只提供答案,切记不要偷懒,一定要自己认真写哦,不要违背了我的初衷(我就是不会了,进度卡了很久,在网上找答案,找了好久也没找到,一怒之下自己做出来了然后发出来,就当帮助之前的自己),我只能提供灵感,并不能帮助你考试,学会了技能才能通过考试,祝你考试顺利。

目录

        5.23最新说明:重新刷一遍代码,看到能改的就改了,所以之前的低效代码会删掉,就会不一样。

        5.11声明:昨天说懒得更,今天闲来无事就更了,我还是太好了。不过题太多了,就差基础题库第六章的片段题没更,以后再说吧,出去散步了。        

        声明:因为题库自己更新了一次,导致我发布的题库并不完整,新的题目已写,但是懒得传,敬请期待。

        声明:本人是初学者学生,所有代码为本人一人学习过程中撰写,前后水平不一致,风格有变化,以及代码写得并不简洁优美,有许多可以改进、优化的地方,欢迎指正,修改。

 基础题库练习2-3章

1-性别转换

2-小写到大写的转换

3-土地面积的计算

4-编程从键盘读入3个整数,输出它们的和与平均值

5-计算跑道长度

6-平面上的两点间距离计算

片段题-1

 基础题库练习第4章

1-把列表里面的个位正整数组合成一个最大的整数

 2-在列表中找出只出现一次的元素,并排序输出 

 3-计算整数列表平均值(根据结果判断是否输出小数部分)

 4-列表生成及循环左移

5-删除列表中的重复值 

6-把分布在两个列表中的姓名和成绩配对后形成一个列表 

7- 生成指定长度的等差数列

8-从一个列表中取出第n个元素,并重复m次,放到末尾,然后输出列表

9-删除列表中指定位置的元素 

10-删除列表中的最大元素和最小元素

11- 把列表中数值为0的元素移动到列表的尾端,其他元素相对顺序不变。

12-找出自然数列表中的素数,并放入另外一个列表,然后输出找出的素数 

13-计算整数列表的平均值 

14-交换列表中两个元素的值,并输出列表 

片段题-1-打印拐形图案 

片段题-2-计算列表的度

 片段题-3-把长度为2n的列表分成n对,使得每一对的最小值的和最大

 片段题-4-编写函数获得第n项斐波那契数列的值

片段题-5-找出不是两个列表中的共有元素,在结果列表升序没有重复元素 

片段题-6-使用列表生成式生成指定范围内的偶数列 

片段题-7-把数列的元素重复n次,然后元素的平方形成新列表,然后去除重复元素 

基础题库练习第5章

片段题-1

 片段题-2

 基础题库练习第6章

1-成绩转换

2-颜色混合器 

3-轮盘赌的颜色 

4-分段函数求值

 5-月份对应的季节

6-组合数字

7-python水仙花数

 8-字符统计

9-美元人民币转换

10-回文素数

11-加密数据

12-判断正方形

 13-评奖系统

14-统计字符串中每个字母出现的次数  

15-高度反弹 

16-找学生 

17-数列求和 

18-累积求和 

片段题-1-计算e

基础题库练习第7章

1-获取国家的GDP值(字典-1)

 2-统计字符串出现的次数(字典-2)

 3-计算平均成绩(字典-2)

4-统计字符串的出现次数(字典-3)

片段题-1

片段题-2

基础题库练习第8章

1-把姓名和成绩列表合并后按照成绩升序排列

片段题-1-计算电费

片段题-2-学号信息纠正

 片段题-3-统计留学生的人数

片段题-4-提取学号信息 

片段题-5-计算两个正整数各对应位乘积之和

片段题-6-计算一组数的方差

片段题-7-用递归函数实现英文字符串逆序输出

片段题-8-带默认参数的函数

 片段题-9-任意数量参数的函数

 片段题-10-输出特定矩阵1

基础题库练习第9章

片段题-1-创建Person类及其对象

片段题-2-模拟简单加减计算器

片段题-3-定义并实现身体质量指数类

片段题-4-设计一个股票类

片段题-5-定义并实现Book类及其__del__函数

基础题库练习第10章

1-删除子串

2-取出字符串中第一个没有重复的字符

4-身份证验证

5-“变位词”判断

 6-密码强度

片段题-1-身份证信息提取和掩码输出

 片段题-2-字符串位置查询

 片段题-3-最长公共子串

​编辑

 片段题-4-换位思考

基础题库练习第11章

1-对文件内每个字符进行大小写转换处理并输出!

片段题 -1

 片段题 -2

 结束语:

OK,所有练习题库都更新完了,这个帖子不出意外就不更新了。

至于作业之类的,会再开一个帖子更新。

不过很多题都是题库里出现过的,翻一翻目录也能找到的。


 基础题库练习2-3章

1-性别转换

men =int(input())

women = int(input())

sum = men + women

menpercent = float(men/sum)*100

womenpercent = float(women/sum)*100

print("The male students ratio is %.2f%%,the female students ratio is %.2f%%"%(menpercent,womenpercent))

2-小写到大写的转换

str1 = input()
print(str1.upper())

3-土地面积的计算

#一英亩等于43560平方英尺
solidnum = int (43560)
chi = int(input())
mu = chi/solidnum
print("The land area is %.3f"%mu)

4-编程从键盘读入3个整数,输出它们的和与平均值

a=int (input())
b= int (input())
c=int (input())
num = a+b+c
ave = num/3
print("%d,%.2f"%(num,ave))

5-计算跑道长度

airname = input()
a=float(input())
v=float(input())
shortlen = (v*v)/(2*a)
print("The acceleration of %s is %.2f M / s, "\
      "the take-off speed is %.2f M / s, "\
        "and the shortest take-off runway length is %.2f M."%(airname,a,v,shortlen))

6-平面上的两点间距离计算

x1,y1=eval(input())
x2,y2=eval(input())
d = ((x2-x1)**2+(y2-y1)**2)**0.5
print(f'{d:.2f}')

片段题-1

tax=0.07*consumption
tip=consumption/10

 基础题库练习第4章

1-把列表里面的个位正整数组合成一个最大的整数

lst=eval(input())
lst.sort(reverse=True)
sum=''
for i in range(len(lst)):
    sum+=str(lst[i])
print(int(sum))

 2-在列表中找出只出现一次的元素,并排序输出 

lst = eval(input())
rst= []
for x in lst:
    if lst.count(x) == 1:
        rst.append(x)
if len(rst) == 0:
    print('False')
else:
    rst.sort()
    print(','.join(map(str,rst)))

 3-计算整数列表平均值(根据结果判断是否输出小数部分)

lst = eval(input())
rst = sum(lst)/len(lst)
if int(rst) == rst:
    print(int(rst))
else:
    print(f'{rst:.2f}')

 4-列表生成及循环左移

N = eval(input())
lst = [x for x in range(1, N+1)]
rst = lst[1::]
rst.append(lst[0])
print(rst)

5-删除列表中的重复值 

lst = eval(input())
lst1=lst[::-1]
rst = []
for x in lst1:
    if x not in rst:
        rst.append(x)
rst.reverse()
print(rst)

6-把分布在两个列表中的姓名和成绩配对后形成一个列表 

lst = input().split(',')
lst1 = eval(input())
rst=[[lst[i],lst1[i]] for i in range(len(lst)) ]
print(rst)

7- 生成指定长度的等差数列

n,m,l=map(int,input().split(','))
rst = list(range(n,n+m*l,l))
print(rst)

8-从一个列表中取出第n个元素,并重复m次,放到末尾,然后输出列表

#lst = list(map(int, input().split()))
lst = list(eval(input()))
#这两个效果一样
n,m = eval(input())
if n<-len(lst) or n>len(lst)-1:
    print('error')
else:
    lst+=[lst[n] for i in range(m)]
    print(lst)

9-删除列表中指定位置的元素 

#另开辟一块空间,使结果相加的思路
lst = eval(input())
n,m = eval(input())
if n>m:
    print("error")
    exit()
elif n>=len(lst) or m>=len(lst):
    print("error")
    exit()
else:
    lst = lst[:n]+lst[m:]
    print(lst)
#直接改变原有的列表从结果中减去一部分的思路
lst = eval(input())
n,m = eval(input())
if n>m:
    print('error')
#这个第二次的代码更完善一点
elif n<-len(lst) or n>len(lst)-1 \
    or m<-len(lst) or m>len(lst)-1:
    print('error')
else:
    for x in range(m-n):
        lst.pop(n)
    print(lst)

10-删除列表中的最大元素和最小元素

#输入形式包括方括号

#这是减的思路
lst = eval(input())
lst_max = max(lst)
lst_min = min(lst)
num_max = lst.count(lst_max)
num_min = lst.count(lst_min)
if(lst_max==lst_min):
    print([])
else:
    for num in range(num_max):
        lst.remove(lst_max)
    for num in range(num_min):
        lst.remove(lst_min)
    print(lst)
#这是加的思路
lst = eval(input())
max_num = max(lst)
min_num = min(lst)
rst = []
for i in lst:
    if i!=max_num and i!=min_num:
        rst.append(i)
print(rst)

11- 把列表中数值为0的元素移动到列表的尾端,其他元素相对顺序不变。

lst= eval(input())
num_zero = lst.count(0)
for num in range(num_zero):
    lst.remove(0)
    lst.append(0)
print(lst)

12-找出自然数列表中的素数,并放入另外一个列表,然后输出找出的素数 

lst = eval(input())
prime_lst = []
for num in lst:
    if num > 1:
        #如果在for循环中没有找到因子,则num是素数
        #使用else语句,在for循环正常结束时执行else语句
        #else语句中的代码块在for循环正常结束时执行
        #for循环和else语句配合使用,可以实现条件判断和循环执行的分离
        for i in range(2, num):
            if (num % i) == 0:
                break
        else:
            prime_lst.append(num)
print(prime_lst)

13-计算整数列表的平均值 

lst = eval(input())
sum = sum(lst)
average = sum / len(lst)
print('%.2f' % average)

14-交换列表中两个元素的值,并输出列表 

lst=input().split()
n,m = map(int,input().split())
lst[n],lst[m]=lst[m],lst[n]
print(lst)

片段题-1-打印拐形图案 

n  =  eval(input())
#生成每行均为最后一行的一个二维列表
lst  =  [[chr(ord("A")+x) for x in range(0,n)] for j in range(n)]

for  i  in  range(n):
        for  j  in  range(i+1,n):
                lst[i][j]  =  chr(ord("A")+i)
        #打印输出第i行
        print("".join(lst[i]))

片段题-2-计算列表的度

def calDegrees(nums):
    nums_max=0
    for num in nums:
        if(nums.count(num)>nums_max):
            nums_max = nums.count(num)
    return nums_max

 片段题-3-把长度为2n的列表分成n对,使得每一对的最小值的和最大

def maxsum(nums):
    nums.sort(reverse=True)
    totalsum = sum(nums[1::2])
    return totalsum

 片段题-4-编写函数获得第n项斐波那契数列的值

def Fibonacci(num,n):
    if n == 1:
        return num[0]
    elif n == 2:
        return num[1]
    elif n > 2:
        for i in range(2,n):
            num.append(num[i-1]+num[i-2])
        return num[n-1]
    else:
        return 0

片段题-5-找出不是两个列表中的共有元素,在结果列表升序没有重复元素 

片段题-6-使用列表生成式生成指定范围内的偶数列 

片段题-7-把数列的元素重复n次,然后元素的平方形成新列表,然后去除重复元素 

基础题库练习第5章

片段题-1

set(StudentList1),set(StudentList2)
StudentSet1 & StudentSet2

 片段题-2

(student[1],student[2])
sum(student[5])/len(student[5])

 基础题库练习第6章

1-成绩转换

percent_grade = eval(input())
five_grade =''
if(percent_grade>=90 and percent_grade<=100):
    five_grade ='A'
elif(percent_grade>=80 and percent_grade<90):
    five_grade='B'
elif(percent_grade>=70 and percent_grade<80):
    five_grade='C'
elif(percent_grade>=60 and percent_grade<70):
    five_grade='D'
elif(percent_grade<60):
    five_grade='E'
print (five_grade)

2-颜色混合器 

# 当红色与蓝色混合时,将得到紫色(purple)。 
# 当红色与黄色混合时,将得到橙色(orange)。 
# 当蓝色与黄色混合时,将得到绿色(green)。
color1 = input()
color2 = input()
if color1 == "red" and color2 == "blue":
    print("purple")
elif color1 == "red" and color2 == "yellow":
    print("orange")
elif color1 == "blue" and color2 == "yellow":
    print("green")
else:
    print("error")

3-轮盘赌的颜色 

# 从1号袋到10号袋,奇数的口袋是红色,偶数的口袋是黑色。
# 从11号袋到18号袋,奇数的口袋是黑色,偶数的口袋是红色。
# 从19号袋到28号袋,奇数的口袋是红色,偶数的口袋是黑色。 
# 从29号袋到36号袋,奇数的口袋是黑色,偶数的口袋是红色。
# 0号口袋是绿色
n = eval(input())
if n < 0 or n > 36:
    print("error")
    exit()
if n % 2 != 0:
    if n >= 1 and n <= 10:
        print("red")
    elif n >= 11 and n <= 18:
        print("black")
    elif n >= 19 and n <= 28:
        print("red")
    elif n >= 29 and n <= 36:
        print("black")
    else:
        print("green")
else:
    if n >= 1 and n <= 10:
        print("black")
    elif n >= 11 and n <= 18:
        print("red")
    elif n >= 19 and n <= 28:
        print("black")
    elif n >= 29 and n <= 36:
        print("red")
    else:
        print("green")

4-分段函数求值

import math
def f(x):
    result =0
    if(x<20):
        result = 6*(x**2)+1
    elif(20<=x and x<40 ):
        result =math.sqrt(3*x-60)
    elif(x>=40):
        result = 100/(x+1)
    return result
x = eval(input())
result = f(x)
print("%.2f"%result)

 5-月份对应的季节

# 根据用户输入的月份,打印该月份所属的季节,
# 如果输入的数据不在1~12范围内,输出“error" 
# 提示:3,4,5 spring ;6,7,8 summer ;
# 9,10,11 autumn ;12,1,2 winter

month = int(input(""))
if month < 1 or month > 12:
    print("error")
elif month in [3, 4, 5]:
    print("spring")
elif month in [6, 7, 8]:
    print("summer")
elif month in [9, 10, 11]:
    print("autumn")
else:
    print("winter")

6-组合数字

#三重循环
#n,m的值不超过10
n,m=input().split()
n=int(n)
m=int(m)
rst =''
if(m-n<3 or n>m or n<0 or m>=10):
    print('illegal input')
else:
    #首位数字循环
    for num1 in range(n,m):
    #0不能做首位
        if(num1!=0):
            for num2 in range(n,m):
                #不能与第一个数字相同
                if (num2!=num1):
                    for num3 in range(n,m):
                        #不能与第一第二相同
                        if(num3!=num2 and num3!=num1):
                            rst+=('%d%d%d '%(num1,num2,num3))
    print(rst)

7-python水仙花数

#a**3 + b**3 +c**3 = abc 是水仙花数
#一行输出一个,没有则返回none
#输出小于等于该值的所有水仙花数


#我以前学c语言时候做过这道题,沿用的c的老方法,写出来对新手理解比较困难
def magic_num(up_limit):
    effctive_num =1
    if(up_limit<=100):
        print('none')
    elif(up_limit>999):
        return magic_num(999)
    else:
        for num in range(100,up_limit+1):
            if((num//100)**3 + ((num//10)%10)**3 +(num%10)**3 ==num):
                print(num)
                effctive_num =0
        if(effctive_num):
            print('none')
up_limit = eval(input())
magic_num(up_limit)
#这是我跟一位朋友交流时发现的另一个算法,相对非常人性化,就是人的思维而不是计算机的
n = eval(input())
if n <100:
    print('none')
    exit()
flag = False
for i in range(100,n+1):
    if i >999:
        break
    num_str = str(i)
    hundred = int(num_str[0])
    ten = int(num_str[1])
    one = int(num_str[2])
    if hundred**3 + ten**3 + one**3 == i:
        print(i)
        flag = True
if flag == False:
    print('none')
#这个是另一位朋友找我改错,发现他这个算法也很巧妙,然后延续他的思路再优化一下
n = eval(input())
rst = []
flag = False
for i in range(1, 10):
    for j in range(0,10):
        for k in range(0,10):
            if i*100+j*10+k == i**3+j**3+k**3:
                rst.append(i*100+j*10+k)
for i in rst:
    if i <= n:
        print(i)
        flag = True
if flag == False:
    print("none")

 8-字符统计

# 输入一行字符(不能输入中文字符)
# 分别统计出该字符串英文字符、空格、数字和其他字符的个数
input_str = input()
en_count = 0
space_count = 0
digit_count = 0
other_count = 0
for char in input_str:
    if char.isalpha():
        en_count += 1
    elif char.isspace():
        space_count += 1
    elif char.isdigit():
        digit_count += 1
    else:
        other_count += 1
print(en_count, space_count, digit_count, other_count)

9-美元人民币转换

# 人民币和美元是世界上通用的两种货币之一,写一个程序进行货币间币值转换,其中:人民币和美元间汇率固定为:1美元 = 6.78人民币。
# 程序可以接受人民币或美元输入,转换为美元或人民币输出。人民币采用&符号或RMB表示,美元采用$或USD表示,符号和数值之间没有空格。
# 注意:人民币和美元间符号在转换中要对等,&和$相互对应,RMB和USD相互对应。
tepstr = input()
if tepstr[0] in ['&']:
    dollar = float(tepstr[1:])/6.78
    print(f"${dollar:.2f} ")
elif tepstr[0] in ['$']:
    rmb = float(tepstr[1:])*6.78
    print(f"&{rmb:.2f} ")
elif tepstr[0:3] in ["RMB"]:
    dollar = float(tepstr[3:])/6.78
    print(f"USD{dollar:.2f} ")
elif tepstr[0:3] in ["USD"]:
    rmb = float(tepstr[3:])*6.78
    print(f"RMB{rmb:.2f} ")
else:
    print("Error")

10-回文素数

#先判断回文再判断素数
#num = input()
import math
def is_hw_prime(num):
    is_hw=True
    num_len =len(num)
    x=0
    for r in num:
        if(r != num[num_len-x-1]):
            is_hw = False
            break
        x=x+1
    is_prime=True
    for i in range(2, math.isqrt(int(num))+1):
        if(int(num)%i==0):
            is_prime=False
            break
    if(is_hw and is_prime):
        print(num+' ',end='')
n = eval(input())
if(n==2):
    print('2')
elif(n>2 and n%1==0):
    for num in range(2,n):
        num = str(num)
        is_hw_prime(num)
else:
    print('illegal input')

11-加密数据

#算法有错误,题目是数字后半段和前半段对称互换,我只考虑了第一位和第二位的对称互换
#不过好在测试数据只测试了两位,三位和四位数字
#第四个测试数据之所以错是因为没理解题意
#可以更新正确的算法,或者只是通过这个作业简单点如下
num = input()
new_num =''
for n in num:
    new_n =(int(n)+5)%10
    new_num+='%d'%new_n
len_num = len(num)
temp1 = new_num[0]
temp2 = new_num[len_num-1]
temp3 = new_num[1]
temp4 = new_num[len_num-2]
if(len_num>3):
    rst=new_num[2:(len_num-2)]
    rst='%s%s'%(temp2,temp4)+rst+'%s%s'%(temp3,temp1)
elif(len_num==3):
    rst='%s'%temp2+new_num[1]+'%s'%temp1
else:
    rst ='%s%s'%(temp3,temp1)
print(rst)

12-判断正方形

# 输入一个方形的长度和宽度,编写程序判断该方形是否为正方形(长和宽都应大于0)

length = int(input())
width = int(input())

if length > 0 and width > 0 :
    if length == width :
        print("It's a square")
    else :
        print("It's a rectangle")
else :
    print("illegal data")

 13-评奖系统

literature = int(input())
math = int(input())
if math >= 99 and literature >= 99:
    print("You won a scholarship of 500 yuan!")
elif math < 30 and literature < 30:
    print("You need to relearn!")

14-统计字符串中每个字母出现的次数  

def count_letters(string_list):
    letter_count = {}
    for string in string_list:
        for letter in string:
            if letter in letter_count:
                letter_count[letter] += 1
            else:
                letter_count[letter] = 1
    return letter_count


string_list = eval(input())
letter_count = count_letters(string_list)


for letter in sorted(letter_count.keys()):
    print(f'{letter},{letter_count[letter]}')

15-高度反弹 

p_high = high = float(input())
N = int(input())
distance = 0
for i in range(N):
    distance += high*2
    high *= 0.5
distance = distance-p_high
print("{:.2f}".format(distance))

16-找学生 

def binary_search(arr, target):
    left = 0
    right = len(arr) - 1
    while left <= right:
        mid = (left + right) // 2
        if arr[mid] == target:
            return mid
        elif arr[mid] < target:
            left = mid + 1
        else:
            right = mid - 1
    return -1
stu_list=\
[['201801','zhangyi'],['201802','zhanger'],['201803','zhangsan'],['201804','zhangsi'],
['201805','wangyi'],['201806','wanger'],['201807','wangsan'],['201808','wangsi'],
['201809','liyi'],['201810','lier'],['201811','lisan'],['201812','lisi'],
['201813','zhaoyi'],['201814','zhaoer'],['201815','zhaosan'],['201816','zhaosi'],
['201817','zhouyi'],['201818','zhouer'],['201819','zhousan'],['201820','zhousi']]
arr  = [i[0] for i in stu_list]
target = input()
rst = binary_search(arr, target)
if rst == -1:
    print('None')
else:
    print(stu_list[rst][0]+stu_list[rst][1])

17-数列求和 

lst = [1,1]
for i in range(2,15):
    lst.append(lst[i-1]+lst[i-2])
n = eval(input())
if n<1:
    print("输入有误")
elif n>14:
    for i in range(15,n+5):
        lst.append(lst[i-1]+lst[i-2])
rst = 0
for i in range(n):
    a=lst[i+2]
    b=lst[i+1]
    rst+=a/b
print(f'{rst:.4f}')

18-累积求和 

input_num = input()
sum=0
count=0
while input_num!= '#':
    input_num = int(input_num)
    sum += input_num
    count += 1
    input_num = input()
print(count, sum)

片段题-1-计算e

基础题库练习第7章

1-获取国家的GDP值(字典-1)

GDP = {}
while True:
    str = input()
    if str == 'ok':
        break
    k, v = str.split(' ')
    GDP[k] = int(v)
dict_keys = list(GDP.keys())
dict_values = list(GDP.values())
dict_keys.sort()
dict_values.sort()
print(dict_keys)
print(dict_values)
print('yes' if 'India' in dict_keys else 'no')
print(sum(dict_values))

 2-统计字符串出现的次数(字典-2)

lst = []
while True:
    str = input()
    if str == 'q':
        break
    lst.append(str)
#s = set(lst)
res = {}
for item in lst:
    res[item] = lst.count(item)
result = sorted(res.items(), key=lambda kv:kv[1], reverse=True)
print(result[0][0], result[0][1])

 3-计算平均成绩(字典-2)

name, english, python, math = input().split(' ')
stu = {
    'name': name, 
    'english': float(english),
    'python': float(python),
    'math': float(math),
    'avg': sum([float(english), float(python), float(math)]) / 3
}
print(stu['name'], end=' ')
for item in sorted([stu['english'], stu['python'], stu['math']], reverse=True):
    print('%.2f' % item, end=' ')
print('%.2f' % stu['avg'])

4-统计字符串的出现次数(字典-3)

lst = list(input().split(" "))
length = len(lst)
res = {}
for item in lst:
    res[item] = lst.count(item)
result = sorted(res.items(), key=lambda kv:(-kv[1],kv[0]))
for i in range(length):
    if(result[i][1]!=result[0][1]):
        break
    print(result[i][0],result[i][1])

片段题-1

    res = {}
    for i in range(a+1):
        res[i]=math.factorial(i)
    return res
import math

片段题-2

    lst1=[]
    lst2=[]
    for num in ls:
        if(num>x):
            lst1.append(num)
        else:
            lst2.append(num)
    dic['k1']=lst1
    dic['k2']=lst2

基础题库练习第8章

1-把姓名和成绩列表合并后按照成绩升序排列

lst_name = input().split(',')
lst_grade = input().split(',')
lst_numbers = [int(num) for num in lst_grade]
lst = zip(lst_name,lst_numbers)
res = sorted(lst,key=lambda x:x[1])
result =[]
for pair in res:
    result.append(list(pair))
print(result)

片段题-1-计算电费

return iConsume * 0.85
fee = costCompute(fElec1,fElec2)

片段题-2-学号信息纠正

res =[]
for num in data2:
    res.append('20'+num)
return res

 片段题-3-统计留学生的人数

 

count=0
for num in ids:
    if(len(num)==9):
        count+=1
return count

片段题-4-提取学号信息 

lst=[]
for num in data2:
    lst.append(num[:8])
return lst

片段题-5-计算两个正整数各对应位乘积之和

a=int(a)
b=int(b)
sum=0
if(a<=0 or b<=0 or a%1!=0 or b%1!=0):
    return 'error'
else:
    while a!=0 and b!=0:
        sum+=(a%10)*(b%10)
        a=a//10
        b=b//10
    return sum

片段题-6-计算一组数的方差

片段题-7-用递归函数实现英文字符串逆序输出

if(len(para2)<1):
print(para2[0],end="")

片段题-8-带默认参数的函数

for x in range(n):
    for y in range(n):
        print('* ',end='')
    print('')
matrix(int(number))

 片段题-9-任意数量参数的函数

sum =1
if(len(para)==0):
    sum = -1
else:
    for x in para:
        sum*=x
return sum

 片段题-10-输出特定矩阵1

    matrix = [[0 for c in range(n)] for r in range(n)]
    number = range(n)
    i =1
    for x in number[::-1]:
        for y in range(n-1-x,n):
            for z in range(n-1-x,n):
                matrix[y][z]=i
        i+=1
    for x in range(n):
        for y in range(n):
            print('%d '%matrix[x][y],end='')
        print('')
    matrix = [[0 for c in range(n)] for r in range(n)]
    #用于切片倒序使用,缩小矩阵范围
    number = range(n)
    #在循环外创建i用于自增,是需要赋的值
    i =1
    #第一个for循环用来控制矩阵规模
    for x in number[::-1]:
        #对缩小的矩阵赋值,覆盖
        #这里n-1-x是为了控制矩阵向右下缩小,否则就是向左上缩小了,然后最后的范围坐标n不变
        for y in range(n-1-x,n):
            for z in range(n-1-x,n):
                matrix[y][z]=i
        i+=1
    #打印矩阵即可
    for x in range(n):
        for y in range(n):
        #同一列不换行
        #使用站位符 是因为每个值中间用空格隔开
            print('%d '%matrix[x][y],end='')
        #输出完一列换行
        print('')

基础题库练习第9章

片段题-1-创建Person类及其对象

片段题-2-模拟简单加减计算器

print('%d-%d=%d' % (self.__n1,self.__n2,m2))

片段题-3-定义并实现身体质量指数类

from enum import Enum
class Status (Enum):
    underweight =0
    ideal = 1
    overweight = 2
    obesity =3
#这个枚举完全没鸟用啊
class BMI:
    def __init__(self,name,age,fheight,fweight) -> None:
        self.name = name
        self.age = age
        self.sfheight = fheight
        self.sfweight = fweight
        self.bmi = 0 
    def getBMI(self):
        self.bmi = (self.sfweight)/((self.sfheight)**2)
        return self.bmi
    
    def getStatus(self):
        if(self.bmi<18):
            return 'underweight'
        elif(self.bmi>=18 and self.bmi <25):
            return 'ideal'
        elif(self.bmi>=25 and self.bmi<27):
            return 'overweight'
        elif(self.bmi>=27):
            return 'obesity'

片段题-4-设计一个股票类

class Stock:
    "Stock Information Class"
    def __init__(self,code,name,priceYesterday,priceToday) -> None:
        self.__privatesCode = code
        self.__privatesName = name
        self.__privatePriceYesterday = priceYesterday
        self.__privatePriceToday = priceToday

    def getName(self):
        return self.__privatesName
    
    def getCode(self):
        return self.__privatesCode
    
    def getPriceYesterday(self):
        return self.__privatePriceYesterday
    
    def setPriceYesterday(self,price):
        self.__privatePriceYesterday = price
    
    def getPriceToday(self):
        return self.__privatePriceToday
    
    def getChangePercent(self):
        ChangePercent = self.__privatePriceToday/self.__privatePriceYesterday - 1
        return ChangePercent

片段题-5-定义并实现Book类及其__del__函数

    def __init__(self,sName,sNo,fPrice) -> None:
        self.name = sName
        self.no = sNo
        self.price = fPrice
    def __del__(self):
        print('Book destroyed-%s,%s,%.2f'%(self.name,self.no,self.price))

基础题库练习第10章

1-删除子串

#子串替换成空
str_dad = input()
str_son = input()
rst = str_dad.replace(str_son,'')
print(rst)

2-取出字符串中第一个没有重复的字符

str = input()
rst = ''
#二重循环最起码会轮回到自己,基数应该是1
for x in str:
    count =-1
    for y in str:
        if(x==y):
            count+=1
        if(count>0):
            break
    if(count==0):
        rst = x
        break
if(rst==''):
    print('None')
else:
    print(rst)

目录

        声明:本人是初学者学生,所有代码为本人一人学习过程中撰写,前后水平不一致,风格有变化,以及代码写得并不简洁优美,有许多可以改进、优化的地方,欢迎指正,修改。

 基础题库练习2-3章

1-性别转换

2-小写到大写的转换

3-土地面积的计算

4-编程从键盘读入3个整数,输出它们的和与平均值

5-计算跑道长度

6-平面上的两点间距离计算

片段题-1

 基础题库练习第4章

1-把列表里面的个位正整数组合成一个最大的整数

 3-计算整数列表平均值(根据结果判断是否输出小数部分)

5-删除列表中的重复值 

8-从一个列表中取出第n个元素,并重复m次,放到末尾,然后输出列表

10-删除列表中的最大元素和最小元素

11- 把列表中数值为0的元素移动到列表的尾端,其他元素相对顺序不变。

片段题-2-计算列表的度

基础题库练习第5章

片段题-1

 片段题-2

 基础题库练习第6章

1-成绩转换

4-分段函数求值

6-组合数字

7-python水仙花数

10-回文素数

11-加密数据

基础题库练习第7章

1-获取国家的GDP值(字典-1)

 2-统计字符串出现的次数(字典-2)

 3-计算平均成绩(字典-2)

4-统计字符串的出现次数(字典-3)

片段题-1

片段题-2

基础题库练习第8章

1-把姓名和成绩列表合并后按照成绩升序排列

基础题库练习第9章

片段题-1-创建Person类及其对象

片段题-2-模拟简单加减计算器

片段题-3-定义并实现身体质量指数类

片段题-4-设计一个股票类

片段题-5-定义并实现Book类及其__del__函数

基础题库练习第10章

1-删除子串

2-取出字符串中第一个没有重复的字符

3-字符串中的最长数字子串

4-身份证验证

5-“变位词”判断

 6-密码强度

基础题库练习第11章

1-对文件内每个字符进行大小写转换处理并输出!

片段题 -1

 片段题 -2

s = input()
longest_substr = ''
current_substr = ''
for char in s:
    if char.isdigit():
        current_substr += char
    else:
        if len(current_substr) >= len(longest_substr):
            longest_substr = current_substr
        current_substr = ''
#根据判断数字子串的条件,只有遇到非数字才会更新最长子串
#如果最后是数字子串的话就不会更新最长子串
#所有在循环外再加一条指令作为判断条件
#也可以在输入之后,手动在s后加一个非数字字符来使最长子串在结束时自动更新
if len(current_substr) >= len(longest_substr):
    longest_substr = current_substr
if longest_substr=='':
    print('No digits')
else:
    print(longest_substr)

4-身份证验证

id = input()
length = len(id)
if length!=18:
    print('Error')
else:
    #7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。
    #53010219200508011X
    a1= int(id[0])*7 
    a2=int(id[1])*9 
    a3=int(id[2])*10
    a4=int(id[3])*5 
    a5=int(id[4])*8 
    a6=int(id[5])*4 
    a7= int(id[6])*2 
    a8= int(id[7])*1 
    a9=int(id[8])*6 
    a10=int(id[9])*3 
    a11=int(id[10])*7 
    a12=int(id[11])*9 
    a13=int(id[12])*10
    a14=int(id[13])*5 
    a15=int(id[14])*8 
    a16=int(id[15])*4 
    a17=int(id[16])*2 
    sum=0
    sum = a1 + a2 + a3 + a4 +a5 + a6 +a7 +a8 +a9 + a10 + a11 + a12 + a13 + a14 + a15 + a16 + a17
    n=sum%11
    m=(12-n)%11
    if(m==10):
        if id[length-1]=='X':
            print('Correct')
        else:
            print('Wrong')
    elif str(m)==id[length-1]:
        print('Correct')
    else:
        print('Wrong')

5-“变位词”判断

#真正正确的代码其实不是这样的
#我是在赌他的测试数据不够完全
#下列代码思路是:先判断长度,相等就转换成集合,自动去除顺序,然后判断是否相等
#但是副作用是会去重,导致损失一定的准确度
#如allinnn和alllinn这样的测试数据,以下代码就无法通过
#因为两个ll、三个nnn和三个lll两个nn去重后都是只有一个l和一个n,而且原字符串长度一样
#但实际上这两个不算是变位词
#不过这个测试数据的漏洞我赌对了,满分过了
str1 = input()
str2 = input()
len1 = len(str1)
len2 = len(str2)
rst = True
if(len1!=len2):
    rst = False
else:
    str1=set(str1)
    str2=set(str2)
    if(str1!=str2):
        rst = False
print(rst)
#真正正确的思路应该是:二重for循环,除去第一重本身的值,在第二重寻找第一重的值
#事先设定rst=true,一旦有反例,立刻赋值false然后break跳出来

 6-密码强度

pin = input()
level = 0
#判断是否有数字
for i in pin:
    if i.isdigit():
        level+=1
        break
#判断是否有小写
if pin.upper()!= pin:
    level+=1
#判断是否有大写
if pin.lower()!=pin:
    level+=1
#判断密码长度是否不低于8
if len(pin)>=8:
    level+=1
#判断是否含有特殊字符
spec_char=['~','!','@','#','$','%','^','&','*','(',')','_','=','-','/',',','.','?','<','>',';',':','[',']','{','}','|',"\\"]
#\这个添加不了
#虽然转义了,但列表输出还是\\
#加了前缀r(raw string,原始字符串)也不能用还是会转义
symble = 0
#作为跳出循环的标志
for char in pin:
    for spec in spec_char:
        if char == spec:
            level+=1
            symble=1
            break
    if symble:
        break
print(level)
#不过还是满分过了

片段题-1-身份证信息提取和掩码输出

'%s-%s-%s'%(icard[6:10],icard[10:12],icard[12:14])
'%s********%s'%(icard[0:6],icard[14:])

 片段题-2-字符串位置查询

 片段题-3-最长公共子串

 这个算法有点难,叫做动态规划。

[[0 for i in range(la+1+1)] for o in range(lb+1+1)]
mmax<res[i][j]

 片段题-4-换位思考

''.join(replace_stars(lista))
str_list[i], str_list[j] = '*', str_list[i]

基础题库练习第11章

1-对文件内每个字符进行大小写转换处理并输出!

f = open('data.txt','r')
a = (f.read()).upper()
f.close()
print(a)

片段题 -1

with open('data.txt') as f:

 片段题 -2

f=open('data.txt','w+')
f.write('\t'.join(stu) + "\n")

 结束语:

OK,所有练习题库都更新完了,这个帖子不出意外就不更新了。

至于作业之类的,会再开一个帖子更新。

不过很多题都是题库里出现过的,翻一翻目录也能找到的。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值