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 ...
随机推荐
- spring踩坑
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is ...
- Openstack实验笔记
Openstack实验笔记 制作人:全心全意 Openstack:提供可靠的云部署方案及良好的扩展性 Openstack简单的说就是云操作系统,或者说是云管理平台,自身并不提供云服务,只是提供部署和管 ...
- 几个非常实用的JQuery代码片段
jQuery是一个兼容多浏览器的javascript库,核心理念是write less,do more(写得更少,做得更多).jQuery使用户能更方便地处理HTML(标准通用标记语言下的一个应用). ...
- LINUX:关于Redis集群的节点分配
文章来源:http://www.cnblogs.com/hello-tl/p/7808268.html 根据上述 Redis集群搭建:http://www.cnblogs.com/hello-tl/ ...
- Python能干啥?
Python之py9 Python之py9-录音自动下载 Python之py9-py9作业检查 Python之py9-py9博客情况获取 Python之py9-微信监控获取mp3_url Python ...
- LeetCode(25)Reverse Nodes in k-Group
题目 Given a linked list, reverse the nodes of a linked list k at a time and return its modified list. ...
- 【HIHOCODER 1105】题外话·堆
描述 小Ho有一个糖果盒子,每过一段时间小Ho都会将新买来的糖果放进去,同时他也会不断的从其中挑选出最大的糖果出来吃掉,但是寻找最大的糖果不是一件非常简单的事情,所以小Ho希望能够用计算机来他帮忙计算 ...
- 收集Windows 8 Metro UI 风格网站资源,觉得不错的顶啊!!
这些资源包含:模板,框架,jQuery插件,图标集等.帮助你快速开发Windows 8 Metro UI风格的网站.本文转自虾米站长网 Frameworks & Templates For M ...
- Session保存用户名到Session域对象中
Session保存用户名 1.构造登录界面 用户名: 密 码: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <!DOCTYPE html> < ...
- msp430项目编程
msp430中项目---LED数码管显示 1.数码管介绍 2.代码(直接使用引脚驱动) 3.代码(使用译码器驱动) 4.项目总结 msp430项目编程 msp430入门学习