更新
This commit is contained in:
19
Python-100-Days/Day01-15/Day05/chicken.py
Normal file
19
Python-100-Days/Day01-15/Day05/chicken.py
Normal file
@@ -0,0 +1,19 @@
|
||||
"""
|
||||
|
||||
求解《百钱百鸡》问题
|
||||
1只公鸡5元 1只母鸡3元 3只小鸡1元 用100元买100只鸡
|
||||
问公鸡 母鸡 小鸡各有多少只
|
||||
|
||||
Version: 0.1
|
||||
Author: 骆昊
|
||||
Date: 2018-03-02
|
||||
|
||||
"""
|
||||
|
||||
for x in range(0, 20):
|
||||
for y in range(0, 33):
|
||||
z = 100 - x - y
|
||||
if 5 * x + 3 * y + z / 3 == 100:
|
||||
print('公鸡: %d只, 母鸡: %d只, 小鸡: %d只' % (x, y, z))
|
||||
|
||||
# 要理解程序背后的算法 - 穷举法
|
||||
50
Python-100-Days/Day01-15/Day05/craps.py
Normal file
50
Python-100-Days/Day01-15/Day05/craps.py
Normal file
@@ -0,0 +1,50 @@
|
||||
"""
|
||||
|
||||
Craps赌博游戏
|
||||
玩家摇两颗色子 如果第一次摇出7点或11点 玩家胜
|
||||
如果摇出2点 3点 12点 庄家胜 其他情况游戏继续
|
||||
玩家再次要色子 如果摇出7点 庄家胜
|
||||
如果摇出第一次摇的点数 玩家胜
|
||||
否则游戏继续 玩家继续摇色子
|
||||
玩家进入游戏时有1000元的赌注 全部输光游戏结束
|
||||
|
||||
Version: 0.1
|
||||
Author: 骆昊
|
||||
Date: 2018-03-02
|
||||
|
||||
"""
|
||||
|
||||
from random import randint
|
||||
|
||||
money = 1000
|
||||
while money > 0:
|
||||
print('你的总资产为:', money)
|
||||
needs_go_on = False
|
||||
while True:
|
||||
debt = int(input('请下注: '))
|
||||
if debt > 0 and debt <= money:
|
||||
break
|
||||
first = randint(1, 6) + randint(1, 6)
|
||||
print('玩家摇出了%d点' % first)
|
||||
if first == 7 or first == 11:
|
||||
print('玩家胜!')
|
||||
money += debt
|
||||
elif first == 2 or first == 3 or first == 12:
|
||||
print('庄家胜!')
|
||||
money -= debt
|
||||
else:
|
||||
needs_go_on = True
|
||||
|
||||
while needs_go_on:
|
||||
current = randint(1, 6) + randint(1, 6)
|
||||
print('玩家摇出了%d点' % current)
|
||||
if current == 7:
|
||||
print('庄家胜')
|
||||
money -= debt
|
||||
needs_go_on = False
|
||||
elif current == first:
|
||||
print('玩家胜')
|
||||
money += debt
|
||||
needs_go_on = False
|
||||
|
||||
print('你破产了, 游戏结束!')
|
||||
16
Python-100-Days/Day01-15/Day05/fibonacci.py
Normal file
16
Python-100-Days/Day01-15/Day05/fibonacci.py
Normal file
@@ -0,0 +1,16 @@
|
||||
"""
|
||||
|
||||
输出斐波那契数列的前20个数
|
||||
1 1 2 3 5 8 13 21 ...
|
||||
|
||||
Version: 0.1
|
||||
Author: 骆昊
|
||||
Date: 2018-03-02
|
||||
|
||||
"""
|
||||
|
||||
a = 0
|
||||
b = 1
|
||||
for _ in range(20):
|
||||
(a, b) = (b, a + b)
|
||||
print(a, end=' ')
|
||||
29
Python-100-Days/Day01-15/Day05/guess.py
Normal file
29
Python-100-Days/Day01-15/Day05/guess.py
Normal file
@@ -0,0 +1,29 @@
|
||||
"""
|
||||
|
||||
猜数字游戏
|
||||
计算机出一个1~100之间的随机数由人来猜
|
||||
计算机根据人猜的数字分别给出提示大一点/小一点/猜对了
|
||||
|
||||
Version: 0.1
|
||||
Author: 骆昊
|
||||
Date: 2018-03-02
|
||||
|
||||
"""
|
||||
|
||||
import random
|
||||
|
||||
answer = random.randint(1, 100)
|
||||
counter = 0
|
||||
while True:
|
||||
counter += 1
|
||||
number = int(input('请输入: '))
|
||||
if number < answer:
|
||||
print('大一点')
|
||||
elif number > answer:
|
||||
print('小一点')
|
||||
else:
|
||||
print('恭喜你猜对了!')
|
||||
break
|
||||
print('你总共猜了%d次' % counter)
|
||||
if counter > 7:
|
||||
print('你的智商余额明显不足')
|
||||
18
Python-100-Days/Day01-15/Day05/lily.py
Normal file
18
Python-100-Days/Day01-15/Day05/lily.py
Normal file
@@ -0,0 +1,18 @@
|
||||
"""
|
||||
|
||||
找出100~999之间的所有水仙花数
|
||||
水仙花数是各位立方和等于这个数本身的数
|
||||
如: 153 = 1**3 + 5**3 + 3**3
|
||||
|
||||
Version: 0.1
|
||||
Author: 骆昊
|
||||
Date: 2018-03-02
|
||||
|
||||
"""
|
||||
|
||||
for num in range(100, 1000):
|
||||
low = num % 10
|
||||
mid = num // 10 % 10
|
||||
high = num // 100
|
||||
if num == low ** 3 + mid ** 3 + high ** 3:
|
||||
print(num)
|
||||
22
Python-100-Days/Day01-15/Day05/palindrome.py
Normal file
22
Python-100-Days/Day01-15/Day05/palindrome.py
Normal file
@@ -0,0 +1,22 @@
|
||||
"""
|
||||
|
||||
判断输入的正整数是不是回文数
|
||||
回文数是指将一个正整数从左往右排列和从右往左排列值一样的数
|
||||
|
||||
Version: 0.1
|
||||
Author: 骆昊
|
||||
Date: 2018-03-02
|
||||
|
||||
"""
|
||||
|
||||
num = int(input('请输入一个正整数: '))
|
||||
temp = num
|
||||
num2 = 0
|
||||
while temp > 0:
|
||||
num2 *= 10
|
||||
num2 += temp % 10
|
||||
temp //= 10
|
||||
if num == num2:
|
||||
print('%d是回文数' % num)
|
||||
else:
|
||||
print('%d不是回文数' % num)
|
||||
28
Python-100-Days/Day01-15/Day05/perfect.py
Normal file
28
Python-100-Days/Day01-15/Day05/perfect.py
Normal file
@@ -0,0 +1,28 @@
|
||||
"""
|
||||
|
||||
找出1~9999之间的所有完美数
|
||||
完美数是除自身外其他所有因子的和正好等于这个数本身的数
|
||||
例如: 6 = 1 + 2 + 3, 28 = 1 + 2 + 4 + 7 + 14
|
||||
|
||||
Version: 0.1
|
||||
Author: 骆昊
|
||||
Date: 2018-03-02
|
||||
|
||||
"""
|
||||
import time
|
||||
import math
|
||||
|
||||
start = time.clock()
|
||||
for num in range(1, 10000):
|
||||
sum = 0
|
||||
for factor in range(1, int(math.sqrt(num)) + 1):
|
||||
if num % factor == 0:
|
||||
sum += factor
|
||||
if factor > 1 and num / factor != factor:
|
||||
sum += num / factor
|
||||
if sum == num:
|
||||
print(num)
|
||||
end = time.clock()
|
||||
print("执行时间:", (end - start), "秒")
|
||||
|
||||
# 通过比较上面两种不同的解决方案的执行时间 意识到优化程序的重要性
|
||||
20
Python-100-Days/Day01-15/Day05/prime.py
Normal file
20
Python-100-Days/Day01-15/Day05/prime.py
Normal file
@@ -0,0 +1,20 @@
|
||||
"""
|
||||
|
||||
输出2~99之间的素数
|
||||
|
||||
Version: 0.1
|
||||
Author: 骆昊
|
||||
Date: 2018-03-02
|
||||
|
||||
"""
|
||||
|
||||
import math
|
||||
|
||||
for num in range(2, 100):
|
||||
is_prime = True
|
||||
for factor in range(2, int(math.sqrt(num)) + 1):
|
||||
if num % factor == 0:
|
||||
is_prime = False
|
||||
break
|
||||
if is_prime:
|
||||
print(num, end=' ')
|
||||
14
Python-100-Days/Day01-15/Day05/table.py
Normal file
14
Python-100-Days/Day01-15/Day05/table.py
Normal file
@@ -0,0 +1,14 @@
|
||||
"""
|
||||
|
||||
输出乘法口诀表(九九表)
|
||||
|
||||
Version: 0.1
|
||||
Author: 骆昊
|
||||
Date: 2018-03-02
|
||||
|
||||
"""
|
||||
|
||||
for i in range(1, 10):
|
||||
for j in range(1, i + 1):
|
||||
print('%d*%d=%d' % (i, j, i * j), end='\t')
|
||||
print()
|
||||
1
Python-100-Days/Day01-15/Day05/总结和练习.md
Normal file
1
Python-100-Days/Day01-15/Day05/总结和练习.md
Normal file
@@ -0,0 +1 @@
|
||||
## 总结和练习
|
||||
Reference in New Issue
Block a user