百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

20250424基本功工作坊编程练习题与参考答案

wptr33 2025-06-15 19:46 27 浏览

#1、寻找误删除的ID(八位数字组成)
#copy.txt是ID备份文件,trouble.txt是误删除了ID的文件,请对照并查出是误删除了哪个ID
target=0
f1=open('copy.txt','r')
list1=f1.readlines()
for line in list1:
    target=target+int(line)
f1.close()
f2=open('trouble.txt','r')
list2=f2.readlines()
for line in list2:
    target=target-int(line)
f2.close()
print("被删除的ID是:",target)

==copy.txt===

16124515
56927463
79152861
39437885
82569633
49584255
18948267
99211664
88974398
17434749
76937179
63743578
13836468
17477564
67377728
48361774
65163526
...

===trouble.txt===

16124515
56927463
79152861
39437885
82569633
49584255
18948267
99211664
88974398
17434749
76937179
63743578
13836468
17477564
67377728
65163526
...
# 2、二分法求解方程f(x)=0的解  例如x^3-x^2+x-1=0
# 已知:y=f(x) 在(a,b)区间单调增减
def f(x):   
    fn=lambda x:eval(fx)
    return fn(x)

def solve(a,b):
    x0=(a+b)//2
    if f(x0)*f(a)<0:
        solve(a,x0)
    elif f(x0)*f(b)<0:
        solve(x0,b)
    elif abs(f(x0))<10e-6:
        return x0


fx = input('f(x)=')  # f(x)表达式
print('输入该函数的一个单调区间(a,b)')
a = int(input('a:'))
b= int(input('b:'))

print(solve(a,b))
#3、实现矩阵a,b的卷积操作,其中a是图像,b是卷积核
def conv2d(a,b):
    for i in range(len(a)):
        for j in range(len(a[0])):
            s=0
            for y in range(len(b)):
                for x in range(len(b[0])):
                    if (i+y<len(a)) and (j+x<len(a[0])):#a中对应数据存在时参与计算,否则为0
                        s=s+b[y][x]*a[i+y][j+x]
            a[i][j]=s
    return a


a=[[ x*(i+1) for x in range(4) ] for i in range(4)]#图像
b=[[1,0],[0,1]]#卷积核

print(conv2d(a, b)) #[[2, 5, 8, 3], [3, 8, 13, 6], [4, 11, 18, 9], [0, 4, 8, 12]]
#4、SQL操作数据库
import sqlite3
import os
os.remove('mydata.db')
#连接数据库
conn = sqlite3.connect('mydata.db')
cursor=conn.cursor()
print('数据库连接成功!')

#创建
strSQL='''
    Create Table if not exists users(
        id Integer primary key Autoincrement,
        name Text not Null,
        age Integer,
        email Text unique
    )
'''#创建users表
cursor.execute(strSQL)
conn.commit()

#插入
strSql='insert into users(name,age,email) values(?,?,?)' #插入数据
import random
data=[['user_'+str(i),random.randint(10,70),'user_'+str(i)+'@test.com' ] for i in range(50)] #生成50条数据

cursor.executemany(strSql,data)
conn.commit()



#更新
strSql='update users set age=age+1 where id %2==0' #id是偶数的所有人年龄增加1
cursor.execute(strSql)
conn.commit()

#删除
strSql = r'delete from users  where id %2==1'#删除所有id是奇数的人
cursor.execute(strSql)
conn.commit()

# 查询
strSql = 'select * from users where age>31 order by age desc'#查找所有年龄大于31岁的人,结果按年龄倒序排列
cursor.execute(strSql)
users = cursor.fetchall()
print(users)

# 关闭数据库
conn.close()
#5、输入糖果数,AB轮流取糖果,每次可以1或者2,最后拿到糖果的胜利;A先取,要求A尽量取胜的算法
import random
tang=int(input('请输入糖果数(>3):'))
while tang>0:
    A = tang % 3
    if A==0:
        A=1
    tang=tang-A
    print('A:',A)
    if tang==0:
        print('A win!')
        break
    else:
        B = random.randint(1, 2) #B随机取1个或2个
        tang=tang-B
        print('B:',B)

    

    

相关推荐

MySQL进阶五之自动读写分离mysql-proxy

自动读写分离目前,大量现网用户的业务场景中存在读多写少、业务负载无法预测等情况,在有大量读请求的应用场景下,单个实例可能无法承受读取压力,甚至会对业务产生影响。为了实现读取能力的弹性扩展,分担数据库压...

Postgres vs MySQL_vs2022连接mysql数据库

...

3分钟短文 | Laravel SQL筛选两个日期之间的记录,怎么写?

引言今天说一个细分的需求,在模型中,或者使用laravel提供的EloquentORM功能,构造查询语句时,返回位于两个指定的日期之间的条目。应该怎么写?本文通过几个例子,为大家梳理一下。学习时...

一文由浅入深带你完全掌握MySQL的锁机制原理与应用

本文将跟大家聊聊InnoDB的锁。本文比较长,包括一条SQL是如何加锁的,一些加锁规则、如何分析和解决死锁问题等内容,建议耐心读完,肯定对大家有帮助的。为什么需要加锁呢?...

验证Mysql中联合索引的最左匹配原则

后端面试中一定是必问mysql的,在以往的面试中好几个面试官都反馈我Mysql基础不行,今天来着重复习一下自己的弱点知识。在Mysql调优中索引优化又是非常重要的方法,不管公司的大小只要后端项目中用到...

MySQL索引解析(联合索引/最左前缀/覆盖索引/索引下推)

目录1.索引基础...

你会看 MySQL 的执行计划(EXPLAIN)吗?

SQL执行太慢怎么办?我们通常会使用EXPLAIN命令来查看SQL的执行计划,然后根据执行计划找出问题所在并进行优化。用法简介...

MySQL 从入门到精通(四)之索引结构

索引概述索引(index),是帮助MySQL高效获取数据的数据结构(有序),在数据之外,数据库系统还维护者满足特定查询算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构...

mysql总结——面试中最常问到的知识点

mysql作为开源数据库中的榜一大哥,一直是面试官们考察的重中之重。今天,我们来总结一下mysql的知识点,供大家复习参照,看完这些知识点,再加上一些边角细节,基本上能够应付大多mysql相关面试了(...

mysql总结——面试中最常问到的知识点(2)

首先我们回顾一下上篇内容,主要复习了索引,事务,锁,以及SQL优化的工具。本篇文章接着写后面的内容。性能优化索引优化,SQL中索引的相关优化主要有以下几个方面:最好是全匹配。如果是联合索引的话,遵循最...

MySQL基础全知全解!超详细无废话!轻松上手~

本期内容提醒:全篇2300+字,篇幅较长,可搭配饭菜一同“食”用,全篇无废话(除了这句),干货满满,可收藏供后期反复观看。注:MySQL中语法不区分大小写,本篇中...

深入剖析 MySQL 中的锁机制原理_mysql 锁详解

在互联网软件开发领域,MySQL作为一款广泛应用的关系型数据库管理系统,其锁机制在保障数据一致性和实现并发控制方面扮演着举足轻重的角色。对于互联网软件开发人员而言,深入理解MySQL的锁机制原理...

Java 与 MySQL 性能优化:MySQL分区表设计与性能优化全解析

引言在数据库管理领域,随着数据量的不断增长,如何高效地管理和操作数据成为了一个关键问题。MySQL分区表作为一种有效的数据管理技术,能够将大型表划分为多个更小、更易管理的分区,从而提升数据库的性能和可...

MySQL基础篇:DQL数据查询操作_mysql 查

一、基础查询DQL基础查询语法SELECT字段列表FROM表名列表WHERE条件列表GROUPBY分组字段列表HAVING分组后条件列表ORDERBY排序字段列表LIMIT...

MySql:索引的基本使用_mysql索引的使用和原理

一、索引基础概念1.什么是索引?索引是数据库表的特殊数据结构(通常是B+树),用于...