随笔分类 -  python程序设计

主要记录一些python编程的小技巧,或者是在OJ上刷题遇到的经典题
摘要:一,区别 sort是列表自带函数,其他数据类型不可用,另外它会改变原列表,返回None;sorted的适用范围广泛,不会改变原列表,返回排序后的新列表。 >>> s=(3,2,1) >>> s.sort() Traceback (most recent call last): File "<pysh 阅读全文 »
posted @ 2020-10-16 23:51 Marvin-wen 阅读(790) 评论(0) 推荐(0) 编辑
摘要:Linux下可直接像运行.exe文件一样运行.py文件,方法是在.py文件的第一行加上下面的任意一行: #!/usr/bin/python #!/usr/bin/env python 二者的区别在于: #!/usr/bin/python是告诉操作系统在调用脚本时调用/usr/bin目录下的pytho 阅读全文 »
posted @ 2020-06-08 12:48 Marvin-wen 阅读(16570) 评论(0) 推荐(0) 编辑
摘要:前言 python的pip安装库很慢,因为它默认的镜像源是国外的,将镜像源换成国内的就很快了,下面介绍怎么更换国内镜像源。 正文 国内比较好的镜像源有以下这些: 阿里云 http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirror 阅读全文 »
posted @ 2020-06-08 12:25 Marvin-wen 阅读(3578) 评论(0) 推荐(0) 编辑
摘要:题目描述 问题描述 如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数。求L位K进制数中K好数的数目。例如K = 4,L = 2的时候,所有K好数为11、13、20、22、30、31、33 共7个。由于这个数目很大,请你输出它对1000000007取模后的值。 阅读全文 »
posted @ 2020-02-13 12:46 Marvin-wen 阅读(655) 评论(0) 推荐(0) 编辑
摘要:题目描述 问题描述 已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。 输入格式 输入一个正整数N。 输出格式 输出一个整数,表示你找到的最小公倍数。 样例输入 9 样例输出 504 数据规模与约定 1 <= N <= 106。 思路 当n为奇数时,n 和n-2都是奇数,n 阅读全文 »
posted @ 2020-02-10 12:36 Marvin-wen 阅读(587) 评论(0) 推荐(0) 编辑
摘要:辗转相除法 最大公约数和最小公倍数的求解方法有很多种,但是我们普遍认为辗转相除法是最好的。辗转相除法的步骤如下: 比较两数,并使m>n; 将m作被除数,n做除数,相除后余数为r; 循环判断r,若r==0,则n为最大公约数,结束循环。若r !=0 ,执行m=n,n=r; 最大公约数 def gcd(x 阅读全文 »
posted @ 2020-02-10 11:46 Marvin-wen 阅读(8209) 评论(0) 推荐(2) 编辑
摘要:填充与对齐 冒号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充,^、<、>分别是居中、左对齐、右对齐,后面带宽度。 >>> print("{:5d}".format(10)) 10 >>> print("{:05d}".format(10)) 00010 >>> print("{:^0 阅读全文 »
posted @ 2020-02-08 17:51 Marvin-wen 阅读(1272) 评论(0) 推荐(0) 编辑
摘要:python range() 函数可创建一个整数列表,一般用在 for 循环中。使用方式: range(start, stop[, step]) start: 计数从 start 开始。默认是从 0 开始。range(4) 相当于 range(0,4) stop: 计数到 stop 结束,不包括 s 阅读全文 »
posted @ 2020-02-08 16:11 Marvin-wen 阅读(11528) 评论(0) 推荐(0) 编辑
摘要:题目描述 问题描述 给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。 输入格式 第一行包含一个整数n。 第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。 第三行包含一个整数a,为待查找的数。 输出格式 如果a在数列中出现了,输出它第一次出现的位置(位置从1开 阅读全文 »
posted @ 2020-02-08 15:46 Marvin-wen 阅读(1199) 评论(0) 推荐(0) 编辑
摘要:题目描述 问题描述 杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。 它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。 下面给出了杨辉三角形的前4行: 1 1 1 1 2 1 1 3 3 1 给出n,输出它的前n行。 输入格式 输入包含一个数n。 输出格式 阅读全文 »
posted @ 2020-02-08 12:57 Marvin-wen 阅读(1401) 评论(0) 推荐(0) 编辑
摘要:问题描述 问题描述 1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。 输出格式 按从小到大的顺序输出满足条件的四位十进制数。 解法一 for i in range(1000, 10000): if str(i) == str(i)[::-1]: print(i 阅读全文 »
posted @ 2020-02-08 10:44 Marvin-wen 阅读(523) 评论(0) 推荐(0) 编辑
摘要:题目 问题描述 123321是一个非常特殊的数,它从左边读和从右边读是一样的。 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。 输入格式 输入一行,包含一个正整数n。 输出格式 按从小到大的顺序输出满足条件的整数,每个整数占一行。 样例输入 52 样例输出 899 阅读全文 »
posted @ 2020-02-05 11:56 Marvin-wen 阅读(1762) 评论(0) 推荐(0) 编辑
摘要:前言 这里主要介绍二进制、十进制、八进制、十六进制之间的相互转换,python中有专门的内置函数来实现进制转换,因此我们不需要自己写。 一、转二进制 >>> bin(10) '0b1010' >>> bin(0o12) '0b1010' >>> bin(0xa) '0b1010' 转二进制使用bin 阅读全文 »
posted @ 2020-01-09 17:03 Marvin-wen 阅读(1147) 评论(0) 推荐(0) 编辑
摘要:前言 保留小数位是我们经常会碰到的问题,尤其是刷题过程中。那么在python中保留小数位的方法也非常多,但是笔者的原则就是什么简单用什么,因此这里介绍几种比较简单实用的保留小数位的方法: 方法一:format函数 >>> print('{:.3f}'.format(1.23456)) 1.235 > 阅读全文 »
posted @ 2020-01-06 23:55 Marvin-wen 阅读(6728) 评论(0) 推荐(0) 编辑
摘要:实现字符串反转的方法有很多,这里我简单介绍一些常用的。 1)字符串切片: >>> s = '123456' >>> print(s[::-1]) 654321 这种方式最简单,效率最高,是我最推荐的方法。当然这里的切片并不是字符串独有的,列表也可以,实际上我们认为字符串是特殊的列表。 >>> s = 阅读全文 »
posted @ 2019-11-19 11:51 Marvin-wen 阅读(4944) 评论(0) 推荐(2) 编辑
摘要:在C语言等高级语言中,字符之间的减运算都是支持的,但是python不然,在python中直接进行字符减运算是不被允许的。 >>> print('c'-'a') Traceback (most recent call last): File "<pyshell#0>", line 1, in <mod 阅读全文 »
posted @ 2019-11-19 09:47 Marvin-wen 阅读(12696) 评论(0) 推荐(0) 编辑
摘要:我们都知道python的input()函数是以字符串的形式输入的,这就产生了一个问题:当我们在一行内输入多个数值时,input()不会去判断输入元素个数,它只管把这行输入以字符串的形式输入,因此我们要得到每一个元素时就需要对字符串分割,再强转成我们需要的类型。这样做明显很麻烦。下面我介绍一种简单的方 阅读全文 »
posted @ 2019-11-18 19:32 Marvin-wen 阅读(3979) 评论(0) 推荐(0) 编辑
摘要:1)for循环输出 这种方法是大家最容易想到的,也是最简单的,但是它有一个弊端:它的输出是竖向排列的,而我们往往需要水平输出。 >>> for i in [1,2,3]: print(i) 1 2 3 2)for循环+分隔符输出 在第一种方法的基础上,我们稍微改进下就能实现水平输出,就是在输出中加上 阅读全文 »
posted @ 2019-11-18 18:46 Marvin-wen 阅读(28618) 评论(0) 推荐(0) 编辑
摘要:前言 在程序设计的过程中,全排列是比较经常遇到的一类问题,有时候自己写还是有点麻烦,也比较浪费时间。在这里我介绍一种python中的全排列函数——itertools.permutations。更重要的是itertools是一个标准库,不需要额外安装只要import即可,要知道正式比赛中是不允许使用第 阅读全文 »
posted @ 2019-11-18 18:04 Marvin-wen 阅读(3541) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示