Python练习
1、 使用python输出如下图形,用while循环
# 使用while循环输出如下图形:(必须使用双重while循环实现)
# *
# * *
# * * *
# * * * *
# * * * * *
i = 1
j = 1
while i <= 5:
while j == i:
print('* ' * (i-1)+'*')
j += 1
i += 1
2、 使用python输出如下图形,用while循环
# 使用while循环输出如下图形:(必须使用双重while循环实现)
# *
# * *
# * * *
# * * * *
# * * * * *
i = 1
while i <= 5:
j = 1
while j <= i:
if j == 1:
print(" " * (5 - i), end="")
print("* ", end="")
j += 1
print("")
i += 1
3、 过7游戏
# 设计“过7游戏”的程序, 打印出1-100之间除了含7和7的倍数之外的所有数字。
num = []
for i in range(1, 101):
if i % 7 != 0 and (i +3) % 10 != 0 and i % 10 != 7:
# 能被7整除、加3以后能被10整除、被10除以后取整等于7
num.append(i)
print(num)
4、水仙花数
# 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,
# 其各个位上数字的立方和等于该数本身。例如:153是一个”水仙花数",
num = []
for i in range(100, 1000):
a = i // 100
b = (i - a * 100) // 10
c = i - a * 100 - b * 10
if i == a ** 3 + b ** 3 + c ** 3:
num.append(i)
print(num)
5、石头剪刀布
# 使用while、if来完成剪刀石头布程序,要求,
# 当玩家第3次获胜时才退出游戏,否则继续玩。
import random
winNum = 0
while winNum != 3:
computer = random.randint(1, 3)
print(computer)
player = int(input('1是剪刀,2是石头,3是布。请输入你要出的数字:'))
if (computer == 1 and player == 2) or (computer == 2 and player == 3) or(computer == 3 and player == 1):
winNum += 1
6、 猜数字:游戏随机给出一个0~99(包括0和99)的数字,然后让你猜是什么数字。你可以随便猜一个数字,游戏会提示太大还是太小,从而缩小结果范围。经过几次猜测与提示后,最终推出答案。在游戏过程中,记录你最终猜对时所需要的次数,游戏结束后公布结果。 说明:
1~2次猜中,打印你太TM有才了!
3~6次猜中,打印这么快就猜出来了,很聪明嘛!
大于7次猜中,打印猜了半天才猜出来,小同志,尚需努力啊!
猜测次数最多20次。
import random
guessNum = random.randint(0, 99)
print(guessNum)
guessTimes = 0 # 猜的次数
gameTimes = 0 # 游戏运行次数,主要是用来控制游戏状态
game = True # 游戏状态
while gameTimes != 20:
while game:
player = int(input('a number:'))
guessTimes += 1
gameTimes += 1
if gameTimes == 20: # 当运行了20次后,关闭游戏
game = False
if player != guessNum: # 猜的不对时给出提示
if player < guessNum:
print('小了,再一次。')
elif player > guessNum:
print('大了,再来一次。')
else: # 猜对的时候停止游戏,并输出结果
game = False
if guessTimes < 2:
print('你太TM有才了!')
elif guessTimes < 6:
print('这么快就猜出来了,很聪明嘛!')
else:
print('半天才猜出来,小同志,尚需努力啊!')
# print(guessTimes)
7、 红蓝白三色球:有10个球分别为3红、3蓝、4白,球与球之间只有颜色的差别,现需要将这10个球放入3个盒子,要求每个盒子至少有一个白球,其余的球全部随机放,要求输出三个盒子里所有球的颜色,请用程序实现。
import random
# 创建十个球
RedBall = ['红球', '红球', '红球']
BlueBall = ['蓝球', '蓝球', '蓝球']
WhiteBall = ['白球', '白球', '白球', '白球']
# 创建三个盒子
boxes = [[], [], []]
for box in boxes:
box.append(WhiteBall.pop()) # 将白球放入
print(boxes) # 验证白球放入情况
balls = RedBall + BlueBall + WhiteBall # 将剩下的球合起来
for ball in balls:
boxNum = random.randint(0, 2) # 随机生成该球要放入盒子的编号
boxes[boxNum].append(ball) # 放球
print(boxes)
8、 输出0-100的质数
num = []
for i in range(2, 101): # 要避开1
for a in range(2, i//2):
if (i % a == 0):
break
else:
num.append(i)
print(num)
9、 用python输出如下图形
# 3、使用while,完成以下图形的输出。
# (每一行的星星不能用*乘以星星的数量来完成,须使用while嵌套)
# *
# ***
# *****
# *******
# *********
# *******
# *****
# ***
# *
row = 1 # 哪一行
num = 1 # 每一行星星的数量
while row <= 9:
num1 = 1 # 第一步打印空格
# 下面的判断确定每一行星星的数量
if row != 1:
if row < 6:
num += 2
else:
num -= 2
while num1 <= num:
if num1 == 1:
print(' ' * ((9 - num) // 2), end='') # 打印空格
print('*', end='') # 打印星星
num1 += 1
print('') # 换行
row += 1