如果真的想学精,学什么都不是好学的,如果真的想把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. 阿里云首次安装和部署nginx

    1.执行yum命令安装依赖 yum -y install pcre* yum -y install openssl* 2.下载nginx //如果没有安装wget,下载已编译版本 yum instal ...

  2. windows cmd color颜色设置

    上一篇我们讲了去模仿电影黑客的命令界面,其中有关于cmd命令行的颜色设置,下面就细说一下: 1.cmd进入命令 2.color+空格+?    系统会给与相关提示: 3.可以看出颜色是一个十六进制控制 ...

  3. 一直被用错的6种SQL 错误用法

    一直被用错的6种SQL 错误用法 1.LIMIT 语句 2.隐式转换 3.关联更新.删除 4.EXISTS语句 5.条件下推 6.提前缩小范围 sql语句的执行顺序: FROM ON JOIN WHE ...

  4. windows 上使用virtualenv进行python多版本转换

    近期因为需要在python2.7和Python3.6上进行工作学习,可是笔记本只配置了python3.6环境. 所以打算使用virtualenv这个强大的工具进行多版本转换: 一.首先,默认已经配置好 ...

  5. Java 新手学习日记一

    Java 基础知识点掌握: 数据类型 变量就是申请内存来存储值.也就是说,当创建变量的时候,需要在内存中申请空间.内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据. 因此 ...

  6. 大数据学习——linux常用命令(四)

    四 查到命令 1 查找可执行的命令所在的路径 which ls 查ls命令所在的路径 2 查找可执行的命令和帮助的位置 whereiis ls 3 从某个文件夹开始查找文件 find / -name ...

  7. sql 四舍五入保留两位小数

    select convert(decimal(18, 2), 362315 * 1.0 / 10000) 1. ROUND(该函数,只是负责四舍五入到两位小数,但是不负责截断 只留两位小数,例如下例: ...

  8. zoj 2932 The Seven Percent Solution

    The Seven Percent Solution Time Limit: 2 Seconds      Memory Limit: 65536 KB Uniform Resource Identi ...

  9. 数据归一化Feature Scaling

    数据归一化Feature Scaling 当我们有如上样本时,若采用常规算欧拉距离的方法sqrt((5-1)2+(200-100)2), 样本间的距离被‘发现时间’所主导.尽管5是1的5倍,200只是 ...

  10. iis性能监控

    文章:对于IIS上的应用程序池监控 文章:IIS并发连接数及性能优化