开始基础编程
学习是一个坚持的过程,更是一个需要不断尝试和巩固的过程,这已经是第五篇文章了,学习了一些python的基础我们就应该来尝试一些基础的编程,当然这只是冰山当中的一角,但我们应当在学习完python的核心元素后,作为巩固必须要开始尝试使用python去解决一些问题。尝试将人类语言理解的逻辑翻译计算机编程语言,这个阶段只有通过大量的练习和巩固查询积累才能使你的编程能力实现质的飞跃。
生活在互联网时代,没有什么是通过网络解决不了的。如果有那就自己动手(手动滑稽),学python除了运维就是算法,虽然python很是热门,但是热门归热门,最好的语言依旧是“拍黄片”。
练习
1.寻找水仙花数。
# 水仙花数就是你看这个数就能闻到水仙花的香味
# 水仙花数说得是任意一个3位数,该数字每个位数上数字的立方之和正正好好就等于这个数本身,那么这个数就被称为水仙花数,也叫做超完全数字不变数、自恋数、自幂数、阿姆斯特朗数。
for narcissus in range(100,1000):
one = narcissus % 10
ten = narcissus // 10 % 10
hundred = narcissus // 100
sum = one**3 + ten**3 + hundred**3
if sum == narcissus:
print(narcissus)
2.求倒数。
# 话说啥叫倒数,我的理解是69,但是专家说那不是倒数,我只能说专家说的对,本题要求将随机输入的整数进行顺序上的颠倒,123 and 321.
number = int(input('请输入一个数:'))
reciprocal = 0
while number > 0 :
reciprocal = reciprocal * 10 + number % 10
num //= 10
print(reciprocal)
3.百金百鸡
# 简单的说就是100块钱买鸡,买了一百只鸡,其中公鸡单价5块,母鸡3块,小鸡仔1块3只。请问100块各买不同种类的鸡多少只。
for cock in range(0,20):
for hen in range(0,33):
chicken = 100 - cock - hen
price = 5*cock + hen*3 + chicken/3
if price == 100:
print('100块可以购买公鸡%d只,木鸡%d只,小鸡%d只' %(cock,hen,chicken))
此题的解题思路就是假设公鸡可以买(0,20)只,母鸡可以买(0,33)只,然后随机产生鸡的数量。去猜测记得数量。
4.CRAPS赌博游戏,又称花旗骰,是美国拉斯维加斯非常受欢迎的一种的桌上赌博游戏。该游戏使用两粒骰子,玩家通过摇两粒骰子获得点数进行游戏。简单的规则是:玩家第一次摇骰子如果摇出了7点或11点,玩家胜;玩家第一次如果摇出2点、3点或12点,庄家胜;其他点数玩家继续摇骰子,如果玩家摇出了7点,庄家胜;如果玩家摇出了第一次摇的点数,玩家胜;其他点数,玩家继续要骰子,直到分出胜负。
from random import randint
money = 1000
while money > 0:
print('你的总资产%d元' %money)
go_on = False
while True:
wager = int(input('请下注:'))
if 0 < wager <= money:
break
first = randint(1,6) + randint(1,6)
print('你骰子摇出的点数%d' %first)
if first == 7 or first == 11:
print("玩家胜!")
money += wager
elif first == 2 or first == 3 or first == 12:
print("庄家胜!")
money -= wager
else:
go_on = True
while go_on:
go_on = False
current = randint(1,6) + randint(1,6)
print('你摇出的点数%d' %current)
if current == 7:
print("庄家胜!")
money -= wager
elif current == first:
print("玩家胜!")
money += wager
else:
go_on = True
print("喂!破产了哟")
5.打印斐波那契数列的前20个数
斐波那契数列(Fibonacci sequence):由意大利数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)在《计算之书》中提出一个在理想假设条件下兔子成长率的问题而引入的数列。
公式:Fn = F(n-1) + F(n-2)
a = 0
b = 1
for x in range(20):
a,b = b,a+b
print(a,end=" ")
fibon = [1,1]
while len(fibon) < 20:
fibon.append(fibon[-1] + fibon[-2])
print(fibon)
print(len(fibon))
6.找出10000以内的完美数
# 完美数:完美数又称完全数和完备数,他们所有的真因子(即出自身以外的因子)的和恰好等于它本身。
# 例如:6=1+2+3
def perfect_number(n):
total = 0
for t in range(1,n):
if n % t == 0:
total += t
if total == n:
return True
return False
for i in range(1,10001):
if perfect_number(i):
print("10000以内的完美数包含%d" %(i))
7.找出100以内所有的素数
# 素数:只能被1和本身整除的数
for i in range(2,101):
j = 2
for j in range(2,i):
if i % j == 0:
break
if i % j != 0:
print(i,end=" ")