#题目:纸厚0.08mm,折几次可以达到珠穆朗玛峰8848.13米的高度
m_height=8848.13*1000
z_height=oldz_height=0.08
#计数器
count=0
#利用循环方法1:
while z_height<m_height:
z_height*=2
count+=1
#利用死循环方法2:
# while True:
# z_height*=2
# count+=1
# if z_height>=8848.13*1000:
# print(f'这张厚{oldz_height}mm的纸,需要折{count}次,才能达到珠穆朗玛峰{m_height/1000}m的高度')
# break
print(f'这张厚{oldz_height}mm的纸,需要折{count}次,才能达到珠穆朗玛峰{m_height/1000}m的高度')
#求1-100能被7或者3整除,但是又不能同时被7和3整除的个数
count=0
for i in range(1,101):
if (i%7==0 or i%3==0) and (i%21!=0):
count+=1
print(i,end='\t')
print(f'----------{count}')
#1,2,3,4这四个数能组成多少个三位数,并打印出来
count=0
for b in range(1,5):
for s in range(1,5):
for g in range(1,5):
if b!=s and s!=g and b!=g:
count+=1
print(f'{b}{s}{g}',end='\t')
print(f'\n有1,2,3,4这四个数能组成{count}个三位数')
#有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13.......求出这个序列的前20项之和
#一个数
total=0
#后一个的分子是前一个数的分母+分子
f_z=1
f_m=2
for i in range(1,21):
total+=f_m/f_z
print(f'{f_m}/{f_z}', end='\t')
f_m,f_z=(f_z+f_m),f_m
print(f'\n序列:2/1,3/2,5/3,8/5,13/8,21/13.......前20项之和是{total:.2f}')
#公园里面有一只猴子和一堆桃子,猴子每天吃掉桃子总数的一半,把剩下一半中扔掉一个坏的。到第七天的时候,猴子发现只剩下一个桃子,问桃子原来有多少个?
peach=1
for e in range(6,0,-1):
peach=(peach+1)*2
print(peach)
#石头剪刀布游戏:0表示石头,1表示剪刀,2表示布;系统随机生产0-2任意数,用户输入0-2任意数,验证输赢,问继续玩输入yes 不玩了输入no,输入其他显示重新输入yes 或者No
import random
count=0
while True:
sys_num = random.randint(0, 2)
user_num = random.randint(0, 2)
if (user_num-sys_num) in (-1,2):
count+=1
print(f'在第{count}局赢了')
while True:
answer=input('请输入yes or no \n')
if answer in ('yes','no'):
break
else:
print('输入错误')
if answer=='no':
print('游戏结束')
break
else:
print('游戏重新开始')
count=0
elif user_num==sys_num:
count += 1
print(f'第{count}局平局')
else:
count += 1
print(f'第{count}局输了')
#比较两个数的大小,大返回1,小返回-1,相同返回0
def compare(a,b):
# if a>b:
# return 1
# elif a<b:
# return -1
# else:
# return 0
return (a>b)-(a<b)#利用布尔类型的运算,真1假0
#判断两个数是否相等
def is_equal(a,b):
# if a==b:
# return True
# else:
# return False
return a==b
#匿名函数lambda
f=lambda a,b:a==b