# -*- coding: utf-8 -*- # 小明的成绩从去年的72分提升到了今年的85分,请计算小明成绩提升的百分点,并用字符串格式化显示出'xx.x%',只保留小数点后1位. s1 = 72 s2 = 85 r = (85-72)/72 #print(r) print("小明的成绩提升了:{0:0.1%}".format(r))…
有关字符串与编码的,转自廖雪峰Python教程. 小明的成绩从去年的72分提升到了今年的85分,请计算小明成绩提升的百分点,并用字符串格式化显示出'xx.x%',只保留小数点后1位: # -*- coding: utf-8 -*- s1 = 72 s2 = 85 以下是解答: r = 100*(s2 - s1) / s1print('提高了''%.1f%%' % r)…
[Python练习题 011] 利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示. --------------------------------------------- 送分题.啥也不说了,看代码: n = int(input('请输入成绩:')) if n >= 90: print('A') elif 60 <= n <= 89: print('B') else: print('C') +++++++++++…
[Python练习题 005]输入三个整数x,y,z,请把这三个数由小到大输出. ----------------------------------------------------------------------- 这题想想应该比较容易:无非是先获取3个数字,然后比大小,按顺序输出即可.不过在写代码的过程中遇到了个难题:因为担心输入时输入非指定的分隔符,需要指定多个分隔符(英文逗号.中文逗号.空格),但 str.split() 只接受1个分隔符. 上网搜索了下,发现可以用正则表达式解决…
# 第三题:返回列表中的第二小的元素的下标 # 1.参数是一个列表,元素全部是整数 # 2.返回第二小的元素的下标 def seconde_min(lt): n = len(lt) if lt[0]< lt[1]: yixiao = lt[0] erxiao=lt[1] else: yixiao=lt[1] erxiao=lt[0] for i in range(2,n): if lt[i]<erxiao: erxiao=yixiao yixiao=lt[i] elif yixiao<l…
Python 练习 标签: Python Python练习题 Python知识点 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数,如果大于预设的数,屏幕显示"太大了,请重新输入"如果小于预设的数,屏幕显示"太小了,请重新输入"如此循环,直到猜中,显示"恭喜你,猜中了!共猜了N次"N为用户猜测次数. 答案: import random def guess_number(): true_num…
[Python练习题 003]一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? ------------------------------------------------- 所谓的"完全平方数",就是开完根号仍然是整数. 数学渣是这么思考的:假设这个数 i 在10000以内.第一步:x = sqrt(i+100).如果 x == floor(x),则证明 x 是个整数.第二步道理也相同,但要记得把 x**2 把根号还原回来,再加上 168…
[Python练习题 028] 求一个3*3矩阵对角线元素之和 ----------------------------------------------------- 这题解倒是解出来了,但总觉得代码太啰嗦.矩阵这东西,应该有个很现成的方法可以直接计算才对-- 啰嗦代码如下: str = input('请输入9个数字,用空格隔开,以形成3*3矩阵:') n = [int(i) for i in str.split(' ')] #获取9个数字 mx = [] #存储矩阵 for i in ra…
[Python练习题 027] 对10个数字进行排序 --------------------------------------------- 这题没什么好说的,用 str.split(' ') 获取输入的10个数字,然后用 lst.sort() 就完成排序了.代码如下: s = input('请输入10个数字,以空格隔开:') n = [int(x) for x in s.split(' ')] n.sort() print(n) 输出结果如下: 请输入10个数字,以空格隔开:3 23 4…
[Python练习题 026] 求100以内的素数. ------------------------------------------------- 奇怪,求解素数的题,之前不是做过了吗?难道是想让我用点新技能.比如 map() 之类的?可是我想了半天还是没想出来啊!只好还是用土办法.代码如下: p = [i for i in range(2,100)] #建立2-99的列表 for i in range(3,100): #1和2都不用判断,从3开始 for j in range(2, i)…
[Python练习题 025] 一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同. ----------------------------------------------- 做题做到现在,这种题目已经很轻车熟路了.希望下一题能增加点难度啊~~~ x = input('请输入一个5位数:') if x[0] == x[4] and x[1] == x[3]: print('%s是个回文数' % x) else: print('%s不是回文数' % x) 输…
[Python练习题 024] 给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. ---------------------------------------------- 这题如果不用递归,实在太简单了!!!代码上: str = input('请输入一个不多于5位的正整数:') print('这个数字是%s位数,逆序为%s.' % (len(str), str[::-1])) 输出结果如下: 请输入一个不多于5位的正整数:45931这个数字是5位数,逆序为13954…
[Python练习题 004]输入某年某月某日,判断这一天是这一年的第几天? ---------------------------------------------- 这题竟然写了 28 行代码!而且还不包含输入数据的验证(只能假设输入的日期是严格按照格式来的).但我坚信,一定有更简洁的方法,比如 Python 对日期的处理. 不过反正还没学到这些知识,现在只能用傻大粗的办法解决.等学到高级的办法再来更新吧~~~ 思路:先判断是否为闰年,这关系到 2 月份的天数.之后再根据月份值把前几个月的…
Python 练习 标签(空格分隔): Python Python练习题 Python知识点 一.使用匿名函数对1~1000求和,代码力求简洁. 答案: In [1]: from functools import reduce In [2]: print(reduce(lambda x, y: x + y, range(1, 1001))) Out[2]: 500500 知识点: 1. 匿名函数:lambda 参数:表达式 lambda语句中,开头先写关键字lambda,冒号前是参数,可以有多个…
python 练习题:   #/usr/bin/python #coding=utf-8 #@Time   :2017/10/26 9:38 #@Auther :liuzhenchuan #@File   :练习题.py   #实现1--100所有数的和 sum = for i in xrange(1,101):     sum += i print sum >>>   #实现1--500 所有奇数的和 js = sum([i for i in xrange(1,501) if i %2…
如果真的想学精,学什么都不是好学的,如果真的想把Python学的出神入化,几乎自己想做什么都可以,就要下定恒心,坚持下去. 接下来继续更新Python练习题2,通过更新前一部的练习题让自己也学到了不少东西 1.取任意小于1美元的金额,然后计算可换成哪几种硬币,分别有几个?硬币有1美分.5美分.10美分.25美分4种,如0.76美元可换3个25美分.1枚1美分 #encoding=utf-8 __author__ = 'heng' from copy import deepcopy #对于要改变字…
本题来自 Project Euler 第4题:https://projecteuler.net/problem=4 # Project Euler: Problem 4: Largest palindrome product # A palindromic number reads the same both ways. # The largest palindrome made from the product # of two 2-digit numbers is 9009 = 91 × 9…
[Python练习题 023] 有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁.问第4个人岁数,他说比第3个人大2岁.问第三个人,又说比第2人大两岁.问第2个人,说比第一个人大两岁.最后 问第一个人,他说是10岁.请问第五个人多大? ----------------------------------------------------- 这题真是--用心算就能算出来好吗?好吧,应该又是要训练递归函数,最近这几题总是跟递归纠缠不清.不过,似乎慢慢理解了递归函数的写法了.本题代码如下:…
[Python练习题 022] 利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来. --------------------------------------- 又来一个递归题!不过,有了[Python练习题 021:递归方法求阶乘]这道题的经验,还是依着葫芦画个瓢,倒也不难.代码如下: str = input('请输入若干字符:') def f(x): if x == -1: return '' else: return str[x] + f(x-1) print(f(len(s…
[Python练习题 021] 利用递归方法求5!. ---------------------------------------------- 首先得弄清楚:5! 指的是"5的阶乘",即 5! = 1*2*3*4*5. 然后呢,据说,"递归"就是对自身进行调用的函数.听着挺奇怪,反正先依葫芦画瓢,写代码如下: def f(x): if x == 0: return 0 elif x == 1: return 1 else: return (x * f(x-1))…
[Python练习题 020] 求1+2!+3!+...+20!的和 -------------------------------------------------- 据说这题是"累积累加"的问题,把"1+2!+3!+...+20!"展开就变成: 1 1*2 1*2*3 1*2*3*4 -- 1*2*3*4--*20 弄懂了这规律,问题就好解决了.代码如下: sum = 0 x = 1 for i in range(1,21): x = x * i sum =…
[Python练习题 019] 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和. ----------------------------------------------- 这题似乎也不难,规律是:后一个分数的分子=前一个分数的分子+分母,后一个分数的分母=前一个分数的分子,循环个20次就有结果.注意,假设分子为a,分母为b,虽然 a = a + b,但此时a已经变成 a+b 了,所以再给b重新赋值的时候,得是 (a+b)-b 才能等于原分…
[Python练习题 018] 打印出如下图案(菱形): * *** ***** ******* ***** *** * ---------------------------------------------- 这题简单啊,只要知道Python的内置方法 str.center(width [, fillchar]) 就能轻而易举打印出来:str即是数量不等的星号,width即是最大宽度(7个空格),默认填充字符fillchar就是空格.两个for循环搞定!代码如下: s = '*' for…
[Python练习题 017] 两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人.已抽签决定比赛名单.有人向队员打听比赛的名单.a说他不和x比,c说他不和x,z比.请编程序找出三队赛手的名单. ------------------------------------------------------ 这题真真想破我脑袋了,看了好几份别人的代码才勉强看懂,真是-- 一开始我只想着先把所有可能都配出来(ax, ay, az, bx, by, bz, cx, cy, cz)…
[Python练习题 016] 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个.第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上想再吃时,见只剩下一个桃子了.求第一天共摘了多少. -------------------------------------------------- 这题得倒着推.第10天还没吃,就剩1个,说明第9天吃完一半再吃1个还剩1个,假设第9天还没吃之前有桃子p个,可得:p * 1/2 -…
[Python练习题 015] 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下.求它在第10次落地时,共经过多少米?第10次反弹多高? ---------------------------------------------------------- 这题其实都可以笔算出来,因为也就是落地10次.看网上给出的结果也是五花八门,也不知道自己算的对不对,请大神们赐教. 我的思路是:除了第1次从100米高度落下,其余的9次都经历了"反弹-落地"的过程,每个过程来回走过的长…
[Python练习题 014] 一个数如果恰好等于它的因子之和,这个数就称为"完数".例如6=1+2+3.编程找出1000以内的所有完数. ----------------------------------------------------------- 这题只要弄明白"完数"及其"因子"的概念,就不难.一开始我把"因子"理解为"质因子",结果只算得出个6.后来才知道,只要数字a能被数字b整除,不论b是…
[Python练习题 013] 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字.例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘输入. 这题倒也不难,实际上 a+aa+aaa+aa...a 可以转化为 (a * 10**0) + (a * 10**1) + (a * 10**2)-- 进而转化为 a * (10**0 + 10**1 + 10**2 --),所以用两个 for 循环就搞定了. 注意:第1个 for 循环,range()得从1…
[Python练习题 012] 输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. ----------------------------------------------- 这题也不难,逻辑很清楚,只要知道 ASCII 码表的对应值,知道 ord('a') 能将字符 'a' 转化为 ASCII 码表上对应的数值,就可以了.其中,数字 0-9 对应的码值为 48-57,大写字母 A-Z 对应 65-90,小写字母 a-z 对应 97-122. 判断的时候应注意:'2' in…
[Python练习题 010]将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5. --------------------------------------------------------------- 蛮以为这又是道送分题,结果费了我1个半小时才解出来! 一开始我简单地以为,只要将输入的整数拿个数字列表挨个除一遍,能整除的就可以收为质因数.但事实上是行不通的,因为这样会连同 4.6.9 这样的数字也收进去,而当质因数有重复时(比如12=2*2*3),就会被遗漏掉. 基于…