Python练习题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 #对于要改变字典时,要记住是要深度复制,要不然原始的字典也会受影响
money = float(raw_input("please enter the money(dollar):"))
money = int(100*money)
moneydic = {25:0,10:0,5:0,1:0}
for key in moneydic:
if money >= key:
moneydic[key] = int(money/key)
money = int(money % key)
moneydic1 = deepcopy(moneydic) #这里进行深度复制
for key in moneydic:
if moneydic[key] == 0:
del moneydic1[key] #因为进行了深度复制,所以在进行for循环迭代时才不会报迭代对象改变的错误 for key in moneydic1:
print("%s the %s cent "%(moneydic1[key],key)),
2.实现一个简单的计算器
#encoding=utf-8
__author__ = 'heng'
#实现一个简单的计算器
operand = raw_input("input:")
operator = ['+','-','*','/','**','%']
def work(n1,op,n2): #运算的函数
if op == '+':return (n1 + n2)
if op == '-':return (n1 - n2)
if op == '*':return (n1 * n2)
if op == '/':return (n1 / n2)
if op == '**':return (n1 ** n2)
if op == '%': return (n1 % n2)
#主函数
for i in operator:
if operand.find(i) > -1 and operand.count(i) < 2: #其中的operand.count(i) < 2 使用来区分*和**的
number = operand.split(i)
newL = []
for x in range(2):
if number[x].find('.') > -1:
newL.append(float(number[x]))
else:
newL.append(int(number[x]))
print work(newL[0],i,newL[1])
3.建立一个简单的出牌游戏
#encoding=utf-8
__author__ = 'heng'
#建立一个随机出牌的游戏系统
from random import *
#from pprint import pprint
values = range(1,11) + 'Jack Queue King'.split()
suits = 'diamonds clubs hearts spades'.split()
deck = ['%s of %s'%(v,s) for v in values for s in suits]
shuffle(deck)
while deck: #这里可以控制程序每次按一次回车打印一个牌
raw_input(deck.pop())
4.输出一个国际象棋的棋盘
解决方案:国际棋盘是这样的


棋盘为8*8的黑白相间的方块组成,程序中利用‘回’来表示黑色,‘口’表示白色。
貌似程序有点傻额,不过很容易理解。。。
#encoding=utf-8
__author__ = 'heng'
#建立一个国际象棋的棋盘
black = u'回' #‘回’用来表示黑色
white = u'口' #‘口’ 用来表示白色
for x in range(1,9):
if x % 2 ==1:
for y in range(1,9):
if y % 2 == 1:
print black,
else:
print white,
if y % 8 == 0:
else:
for z in range(1,9):
if z % 2 == 0:
print black,
else:
print white,
if z % 8 == 0:
程序运行的结果:

5.打印出所有的水仙花数
所谓的水仙花数就是三位数的个十百三位的立方之和等于这个数本身
#encoding=utf-8
__author__ = 'heng'
#打印出所有的水仙花数
for i in range(100,1000):
x = i % 10 #个位数
y = (i / 10) % 10 #十位数
z = i / 100 #百位数
if i == x**3 + y**3 + z**3:
print i,
6.将一个数分解质因数
#encoding=utf-8
__author__ = 'heng'
n = int(raw_input("input number:\n"))
print "n = %d" % n for i in range(2,n + 1):
while n != i:
if n % i == 0:
print i,
print '*',
n = n / i
else:
break
print "%d" % n
Python练习题2的更多相关文章
- Python练习题 028:求3*3矩阵对角线数字之和
[Python练习题 028] 求一个3*3矩阵对角线元素之和 ----------------------------------------------------- 这题解倒是解出来了,但总觉得 ...
- Python练习题 027:对10个数字进行排序
[Python练习题 027] 对10个数字进行排序 --------------------------------------------- 这题没什么好说的,用 str.split(' ') 获 ...
- Python练习题 026:求100以内的素数
[Python练习题 026] 求100以内的素数. ------------------------------------------------- 奇怪,求解素数的题,之前不是做过了吗?难道是想 ...
- Python练习题 025:判断回文数
[Python练习题 025] 一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同. ---------------------------------------- ...
- Python练习题 024:求位数及逆序打印
[Python练习题 024] 给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. ---------------------------------------------- ...
- Python练习题 004:判断某日期是该年的第几天
[Python练习题 004]输入某年某月某日,判断这一天是这一年的第几天? ---------------------------------------------- 这题竟然写了 28 行代码! ...
- Python练习题-1.使用匿名函数对1~1000求和,代码力求简洁。
Python 练习 标签(空格分隔): Python Python练习题 Python知识点 一.使用匿名函数对1~1000求和,代码力求简洁. 答案: In [1]: from functools ...
- PYTHON练习题 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数。
Python 练习 标签: Python Python练习题 Python知识点 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数,如果大于预设的 ...
- python 基础 2.8 python练习题
python 练习题: #/usr/bin/python #coding=utf-8 #@Time :2017/10/26 9:38 #@Auther :liuzhenchuan #@File ...
随机推荐
- 全志T8智能汽车方案芯片参数介绍
T8处理器代表了Allwinner在智能汽车市场上的最新成就.T8适用于需要三维图形.高级视频处理.精密相机.多种连接选项和高水平系统集成的应用程序.它将把先进的消费电子体验带入未来的汽车,实现高性能 ...
- 使用VS自带WCF测试客户端
打开VS自带WCF测试客户端 打开VS2015 开发人员命令提示 输入:wcftestclient,回车 提取wcftestclient 当然,可以看到VS2015 开发人员命令提示知道,当前路径在C ...
- jquery实现密码强度检测
jquery实现密码强度验证 jquery实现密码强度验证 JS代码: $('#pass').keyup(function(e) { var strongRegex = new RegExp( ...
- python 变量引用
最近在看<<流畅的python>>关于变量引用部分时,有一些自己的看法,就再次记录一下. 问题: # From flunet python example 8-8 class ...
- Shell函数和正则表达式
1. shell函数 shell中允许将一组命令集合或语句形成一段可用代码,这些代码块称为shell函数.给这段代码起个名字称为函数名,后续可以直接调用该段代码. 格式: func() { #指定 ...
- iPhone模拟定位(非越狱修改手机定位)
剩下的事情就是build一下到手机,那么,就可以看到神奇的效果! 本次带来一个简单又好玩的实用功能,比如定位装逼(共享定位非分享可选那种),又或者定位打卡之类,由于改变的是设备级别的定位,本设备所 ...
- 条款16:成对使用new和delete时要采取相同形式
NOTE: 1.如果你在new表达式中使用[],必须在相应的delete表达式中也使用[].如果你在new表达式中不使用[],一定不要在相应的delete表达式中使用[].
- Android Ubuntu 12.04 源码环境搭建
$ sudo apt-get install git gnupg flex bison gperf build-essential \ zip curl libc6-dev libncurses5-d ...
- 大数据学习——关于hive中的各种join
准备数据 2,b 3,c 4,d 7,y 8,u 2,bb 3,cc 7,yy 9,pp 建表: create table a(id int,name string) row format delim ...
- webservice学习第二天
1 课程回顾 l 什么是webservice 远程调用技术:系统和系统之间的调用,获取远程系统里的业务数据 Webservice使用http传输SOAP协议的数据的一种远程调用技术 l Webserv ...