如果真的想学精,学什么都不是好学的,如果真的想把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:
print
else:
for z in range(1,9):
if z % 2 == 0:
print black,
else:
print white,
if z % 8 == 0:
print

程序运行的结果:

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的更多相关文章

  1. Python练习题 028:求3*3矩阵对角线数字之和

    [Python练习题 028] 求一个3*3矩阵对角线元素之和 ----------------------------------------------------- 这题解倒是解出来了,但总觉得 ...

  2. Python练习题 027:对10个数字进行排序

    [Python练习题 027] 对10个数字进行排序 --------------------------------------------- 这题没什么好说的,用 str.split(' ') 获 ...

  3. Python练习题 026:求100以内的素数

    [Python练习题 026] 求100以内的素数. ------------------------------------------------- 奇怪,求解素数的题,之前不是做过了吗?难道是想 ...

  4. Python练习题 025:判断回文数

    [Python练习题 025] 一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同. ---------------------------------------- ...

  5. Python练习题 024:求位数及逆序打印

    [Python练习题 024] 给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. ---------------------------------------------- ...

  6. Python练习题 004:判断某日期是该年的第几天

    [Python练习题 004]输入某年某月某日,判断这一天是这一年的第几天? ---------------------------------------------- 这题竟然写了 28 行代码! ...

  7. Python练习题-1.使用匿名函数对1~1000求和,代码力求简洁。

    Python 练习 标签(空格分隔): Python Python练习题 Python知识点 一.使用匿名函数对1~1000求和,代码力求简洁. 答案: In [1]: from functools ...

  8. PYTHON练习题 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数。

    Python 练习 标签: Python Python练习题 Python知识点 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数,如果大于预设的 ...

  9. python 基础 2.8 python练习题

    python 练习题:   #/usr/bin/python #coding=utf-8 #@Time   :2017/10/26 9:38 #@Auther :liuzhenchuan #@File ...

随机推荐

  1. mysql5.7zip安装

    一.下载mysql zip文件 二.解压.(我的目录A:\mysql\mysql-5.7.23-winx64) 三.配置环境变量   Path后面追加%A:\mysql\mysql-5.7.23-wi ...

  2. ssh服务介绍

    基本介绍 ssh:安全的远程登陆 要有客户端与服务器端,客户端主动链接服务端,那么服务端地址是不能变的. socket:套接字 标识应用唯一的地址 tcp/udp port端口号 cat /etc/s ...

  3. python基础知识06-函数基础和函数参数

    函数基础和函数参数 可迭代对象:序列类型 range . 1.函数的定义 def 函数名(参数): pass return 表达式 ,不能是赋值语句.不写默认返回None.用逗号隔开返回一个元组. 函 ...

  4. Python爬虫-代理池-爬取代理入库并测试代理可用性

    目的:建立自己的代理池.可以添加新的代理网站爬虫,可以测试代理对某一网址的适用性,可以提供获取代理的 API. 整个流程:爬取代理 ----> 将代理存入数据库并设置分数 ----> 从数 ...

  5. JQuery中如何查找某种类型的所有元素&选择器

    更多的是,有关于选择器的内容. 背景:查找某控件中所有的input元素,代码如下: $("#div1").find("input").each(function ...

  6. ArrayList练习之存储字符串并遍历

    在myArrayList项目下 新建一个包 在这个包中新建一个类:ArrayListDemo4.java ArrayListDemo4.java import java.util.ArrayList; ...

  7. ubunt设置终端快捷键设置 及 常用快捷键

    Ctrl+A:将光标移动到命令行的开始处. Ctrl+E:将光标移动到命行令的结尾处. Ctrl+U:删除行首到光标出的字符. Ctrl+Z:把当前进程送到后台处理.  &    bg 部分快 ...

  8. OO第三次作业总结(JML)

    第三单元的课题是JML, 即java建模语言.JML是一种描述接的语言.通过前置条件和后置条件,描述一个模块的行为.本单元我们扮演一个项目中的一员,完成自己的一小部分工作,最终实现整个项目.而限制我们 ...

  9. PTA 03-树3 Tree Traversals Again (25分)

    题目地址 https://pta.patest.cn/pta/test/16/exam/4/question/667 5-5 Tree Traversals Again   (25分) An inor ...

  10. [luoguP1227] [JSOI2008]完美的对称(sort)

    传送门 排序! #include <cstdio> #include <iostream> #include <algorithm> #define N 20001 ...