经验分享
Leosaf
大家好,我是天津科技大学人工智能专业的在校大学生,专注于人工智能的各个方面,目前就读本科,自己借用CSDN来记录自己的学习过程,欢迎大家一起分享学习经验
展开
-
快速排序及其python实现
什么是快速排序快速排序的基本思想是通过分治法把一个列表分为两个子串。分离的原理就是利用一个基准。算法描述:1.从列表里挑出一个元素作为基准。2.重新排列数组,将所有元素比基准小的放在基准前面,比基准大的放在基准后面,,该基准处于数组的中间。称为分区操作。3.分离两个数组,递归地进行上述操作。该算法本质上是递归与分治的结合,利用递归进行将数组分离,并利用基准排序。在快速排序中,我们需要设计两个指针,分别在末端和当前基准处,一般基准都为第一个,然后进行两者的比较,如果最后的比基准大,则指针前移,直原创 2022-01-02 23:07:48 · 173 阅读 · 0 评论 -
用树莓派做一个语音机器人
早就想写一篇语音机器人的文章,凑巧这两天受委托做个树莓派语音机器人,又复习一下流程熟悉了过程才准备写一篇文章,这是基于图灵机器人和百度api的语音助手。目录准备硬件准备包的准备准备机器人录音语音转文字图灵机器人回复文字转语音完整代码准备硬件准备首先我们需要给树莓派安装麦克风和扬声器,当然没有扬声器也可以直接用耳机,然后进行调试。输入:lsusb或者arecord -l识别成功之后进行录音arecord -D "plughw:1,0" -f dat -c 1 -r 16000 -d原创 2021-04-28 11:41:47 · 1624 阅读 · 3 评论 -
一篇文章让你快速入门Pandas
目录Pandas介绍简单介绍Pandas的基本功能Pandas的优势数据结构为什么有多个数据结构大小可变与数据复制Pandas的基本内容Pandas的基础方法数据的生成与有关方法一维数组二维数组数组的其余方法Pandas的选择数据用标签选取数据切片利用iloc进行选择Boolean indexing布尔索引Pandas的缺失值处理删除缺失值的行填充缺失值提取NAN值的布尔掩码Pandas的运算统计合并concat合并join合并append追加Pandas数据的导入与导出数据导入数据导出应用实例Pandas原创 2021-04-21 23:07:12 · 1757 阅读 · 15 评论 -
一篇文章让你快速入门Numpy
Numpy介绍什么是NumpyNumpy为什么这么快Numpy基本内容基本属性当然在选取的时候我们仍然可以设置里面的数据形式还可以简单的创建一个零矩阵和一矩阵numpy中还有arange函数,可以设定指定范围创建矩阵生成随机矩阵基础运算numpy中的三角函数矩阵中的数进行比较时会每个进行比较,返回bool值的同型矩阵利用numpy还可以进行矩阵的乘积运算还有其余的运算函数如下索引一维操作二维操作其余函数分割和合并分割合并总结Numpy介绍什么是NumpyNumpy是python中科学计算的基础包,提.原创 2021-04-21 13:54:23 · 217 阅读 · 2 评论 -
PAT甲级1100 Mars Numbers
题目大意多读几遍题目后,终于发现他是让我们求十三进制的,这样一来就比较简单了解答代码num=int(input())low=["tret", "jan", "feb", "mar", "apr", "may", "jun", "jly", "aug", "sep", "oct","nov", "dec"]high=["tam", "hel", "maa", "huh", "tou", "kes", "hei", "elo", "syy","lok", "mer", "jou"]result=[]原创 2021-02-22 16:29:57 · 81 阅读 · 0 评论 -
PAT甲级1042 Shuffling Machine——python
题目中就是让我们对这些牌进行顺序的转换,转换K次pai = ["S1","S2","S3","S4","S5","S6","S7","S8","S9","S10","S11","S12","S13", "H1","H2","H3","H4","H5","H6","H7","H8","H9","H10","H11","H12","H13", "C1","C2","C3","C4","C5","C6","C7","C8","C9","C10","C11","C12","C13", "D原创 2021-02-21 14:32:17 · 93 阅读 · 0 评论 -
PAT (Basic Level) Practice 1016 部分A+B——python
题目中我们还是需要分开输入的数,然后进行相加。注意,最后一个判断句至关重要x = input().strip()x += ' 'n = 0s = 0m = []for i in x: if i == ' ': m.append(x[s:n+1]) s = n n += 1a = m[0].strip().count(m[1].strip())*m[1].strip()b = m[2].strip().count(m[3].strip())*m[原创 2021-02-21 14:10:38 · 108 阅读 · 0 评论 -
PAT (Basic Level) Practice1017 A除以B
我们只需要把数字分开后输出计算就可以了x = input().strip()b = int(x[-1])a = int(x[:-2])print(a//b, a%b)原创 2021-02-21 13:56:21 · 85 阅读 · 0 评论 -
PAT甲级1031 Hello World for U——python
题目大意输入一个字符串长度为5~80,以’U’型输出,使得底端一行字符数量不小于侧面一列,左右两列长度相等。解决我们先计算出三条边的长度,之后再一个一个取出来进行拼接line = list(input())num = len(line)x = [float('inf'),0]for i in range(3, num): if (num+2-i) % 2 == 0: if i >= (num+2-i) / 2: if i - ((num+2原创 2021-02-20 15:02:03 · 108 阅读 · 0 评论 -
PAT甲级1035 Password——python
题目大意进行PAT考试的时候,系统会为每个用户随机生成密码,但是有些字符看起来容易混淆,所以用@代替1,%代替0,L代替l,o代替O,现给出N个用户名及其密码,逐个判断密码是否需要修改,最后输出需要修改的密码总数,并输出每个需要修改的用户名及其密码。如果没有修改帐户,则打印在帐户总数所在的一行中。但是,如果是,则必须打印。There are N accounts and no account is modifiedNNThere is 1 account and no account is modifie原创 2021-02-19 22:42:46 · 103 阅读 · 0 评论 -
PAT甲级1023 Have Fun with Numbers——python
我们利用Counter包进行巧妙解决from collections import Counternum = input()n = str(int(num)*2)a = Counter(num)b = Counter(n)if a==b: print("Yes")else: print("No")print(n)原创 2021-02-19 22:31:20 · 98 阅读 · 0 评论 -
PAT甲级1027 Colors in Mars——python
题目大意:给定三个[0,168]范围内的十进制整数,将它们转换为十三进制后按顺序输出。算法思路:该题数据范围就确定了转化为13进制的数字最多只有2位,所以对于任意一个[0,168]范围内的十进制整数,除以13就是十位数字,对13取余就是个位上的数字,唯一的区别在于对于大于9的数字用大写字母表示,那么使用radix数组存储13进制的每一位数字,比如radix[10]=‘A’,代表了实际数字与显示数字的对应关系,radix[a[i]/13],radix[a[i]%13]就是对应的十位数字和个位数字上的显示原创 2021-02-18 11:04:28 · 101 阅读 · 1 评论 -
PAT甲级1019 General Palindromic Number——python
这题提出了一个术语——Palindromic Number,学术翻译叫做回文数,用通俗的话讲就是对称数,正着写和倒着写都一样,比如最近在讨论的20200202。本题将对称数的范围从十进制扩展到了任意进制,即在给定进制下正写和倒写都一样,比如27在二进制下是11011,那么27就是二进制下的对称数。题目给出十进制的数值,同时给出进制数,需要计算十进制数值在给定进制下是否为对称数。代码如下:def change(n,radix): if n==0: return '0' re原创 2021-02-18 10:58:51 · 146 阅读 · 1 评论 -
PAT 甲级 1015——python讲解
题目大意:数字N在D进制下是不是双重素数。双重素数是本身和倒数皆为素数的数。实现:判断N是否为素数。如果不是,输出No,否则将该数在D进制下倒过来再化为十进制数,判断是否为素数。如果是,输出Yes,否则输出No.做这道题目的时候我们需要注意以下两点:1>内置函数int可以把字符串从指定的进制转换成十进制2>在检验是否是整型的时候,要注意0和1,这两个直接返回否import mathdef check(num): if num <= 1: return原创 2021-02-18 10:53:44 · 230 阅读 · 2 评论 -
PAT 甲级 1008 Elevator (20 分) ——python
代码如下:注意输入是第一个是楼层总数,后面的是要走的位置。而且两个楼层相同时要加时间5str_in = input()a = [int(n) for n in str_in.split()]#print(a)n = int(a[0])res = int(0)ans = int(0)for i in range(1, n + 1): x = int(a[i]) if res > x: ans += 4 * (res - x) + 5 elif re原创 2021-02-16 16:52:53 · 130 阅读 · 2 评论 -
PAT甲级1011 World Cup Betting——python
一共有三个输入,我们还要把他们转化为小数,注意他输入的是一个字符串,我们需要把他们转化成小数,注意分割位置,我们需要寻找空格,分割的代码如下:x = '1.76 1.6 1.43'x = list(x)x.append(' ')print(x)n = 0m = []for i in range(len(x)): if x[i] == ' ': m.append(''.join(x[n:i])) n = iprint(m)for j in m:原创 2021-02-16 16:19:18 · 231 阅读 · 1 评论 -
PTA 甲级 1005 Spell It Right——python讲解
首先我们要明白输入的是字符串,我们需要修改成整数然后加和,之后我们需要写一个列表英文从零到九,然后把计算的和变成一个一个的下表进行查找,最后我们只需要用join函数进行合并就可以了x = list(input())sum = 0for i in x: sum += int(i)a = ["zero","one","two","three","four","five","six","seven","eight","nine"]res = []for i in list(str(sum)):原创 2021-02-16 15:08:01 · 122 阅读 · 1 评论 -
PAT 1001 A+B Format python解法
我们可以直接输出,电脑会自动分类,我们只需要把中间的间隔改为逗号即可a,b = map(int,input().split())print(format(a+b,','))原创 2021-02-09 22:29:36 · 133 阅读 · 5 评论 -
python利用datatime模块进行时间运算
我们尝试解决一个问题:大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?高斯出生于:1777年4月30日。在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。高斯获得博士学位的那天日记上标着:8113 请你算出高斯获得原创 2021-01-06 12:49:54 · 871 阅读 · 2 评论