当前位置: 首页 > article >正文

Pycharm(七):几个简单案例

一.剪刀石头布

需求:和电脑玩剪刀石头布游戏

考察点:1.随机数;2.判断语句

import random
# num=random.randint(1,3)
# print(num)
# print('*'*30)
#1.录入玩家手势
player=int(input('请输入手势:(1.剪刀 2.石头 3,布):'))
#2.生成电脑手势
computer=random.randint(1,3)
print(f'电脑手势:{computer}')
#3.比较,给出结果。
if player!=1 and player!=2 and player!=3:
    print('输入的值有误,请重新输入!')
elif player==computer:
    print('平局了!')
elif (player==1 and computer==3) or(player==2 and computer==1) or (player==3 and computer==2):
    print('恭喜你赢了!')
else:
    print('电脑赢了!')

二、报数字游戏

需求:键盘录入参与游戏的总人数,统计个位数不为7且不是7的倍数的总数有多少个。

考察点:统计(计数)思想

'''
案例:报数字游戏
考察点:统计(计数)思想
需求:键盘录入参与游戏的总人数,统计个位数不为7且不是7的倍数的总数有多少个
提示:录入50  结果:39
'''
#1.键盘录入用户数字
num=eval(input('请输入参与游戏的总人数:'))
#2.count用于记录合法的总人数
count=0
#3.for循环获取具体人数的编号
for i in range(1,num+1):
#4.判断当前数字是否非法,如果非法continue
    if i%7==0 or i%10==7:
        continue
#5.走到这里,我们要的数字计数器+1
    count+=1
#6.循环结束后,打印结果
print(f'符合条件的有{count}个')
# s1='sbabc'
# print('abc' in s1)
name='张三'
print(name)
print(eval('name'))
# print(eval('张三'))

三、水仙花数

需求:打印所有的水仙花数

#水仙花数,三位数,各个数位的立方和相加等于该数字 #例如:153=1*1*1+5*5*5+3*3*3

#1.打印所有的水仙花数:
#水仙花数,三位数,各个数位的立方和相加等于该数字
#例如:153=1*1*1+5*5*5+3*3*3
'''
获取一个数字各个数位:
个位:i//1%10
十位:i//10%10
百位:i//100%10
千位:i//1000%10
......
'''
#1)我的做法
for i in range(100,1000):
    a=i//100%10
    b=i%100//10
    c=i//1%10
    if a*a*a+b*b*b+c*c*c==i:
        print(i)
print('-'*30)
#2)正规做法
for i in range(100,1000):
    ge=i//1%10
    shi=i//10%10
    bai=i//100%10
    if ge*ge*ge+shi*shi*shi+bai*bai*bai==i:
        print(i)
print('-'*30)
#需求2.统计水仙花数的个数
count=0
for i in range(100,1000):
    ge=i//1%10
    shi=i//10%10
    bai=i//100%10
    if ge*ge*ge+shi*shi*shi+bai*bai*bai==i:
        count+=1
print(f'水仙花数的个数是:{count}')
print('-'*30)

四、打印质数

需求:打印(1,100)所有的质数。

考察点:循环+else语法

#执行流程: #如果循环是正常结束(即:不是通过break跳出的)

#就一定会指定else中的内容,反之,则不执行。

#循环只要不是break方式结束的,就会正常退出,走else的内容,否则不走else的内容。

#1.假设10是质数,1和10可以排除,因为肯定能整除,只要拿10和2,3,4,5,6,7,8,9来逐个判断,只要有一组能整除,说明10不是质数
#核心思路:判断i是否是整数,只要拿i和2~(i-1)逐个判断即可。
#核心思路:判断i是否是整数,只要拿i和2~i//2逐个判断即可。
#1.定义计数器,用于记录质数的个数
count=0
#2.获取1-100之间的所有数字
for i in range(2,101):#i就是要判断是否是质数的值
    #获取2~i//2之间的所有数字
    for j in range(2,i//2+1):
        #判断是否是质数
        if i%j==0:
            break#能整除,说明i不是质数
    else:
        count+=1
        # #方式1.分解版
        # if count%3==0:
        #     print(i,end='\n')
        # else:
        #     print(i,end='\t')
        #方式2.
        #my version
        # print(i,end='\n') if count%3==0 else print(i,end='\t')
        #teacher version
        #三元表达式做法
        print(i,end='\n'if count%3==0 else '\t')

五、猜数字游戏

需求:随机生成1个1-100之间的整数,让用户来猜,猜对了结束,猜错了继续猜,并提示用户猜大了还是猜小了。

考察点:1.随机数;2.条件判断。

#1.导包
import random
#2.随机生成1-100之间的随机整数
guess_number=random.randint(1,100)
#3.循环,让用户猜。因为不知道用户多少次能猜对,所以用while死循环.
while True:
    #4.提示用户录入一个整数,并接收
    input_number=eval(input('请录入您要猜的整数:'))
    #5.判断用户输入的整数与随机数是否相等,并提示。
    if input_number>guess_number:
        print('猜大了!')
    elif input_number<guess_number:
        print('猜小了!')
    else:
        print('恭喜你,猜对了!')
        break

六、打印九九乘法表

需求:打印九九乘法表

考察点:循环语句

for循环写法:
 

#案例5.打印九九惩罚表
for i in range(1,10):#外循环,控制行数,包左不包右
    for j in range(1,i+1):
        print(f'{j}*{i}={i*j}',end='\t')
    print()
print('-'*30)

while循环写法:

i=1
while i<=9:
    j=1
    while j<=i:
        print(f'{j}*{i}={j*i}',end='\t')
        j+=1
    print()
    i+=1
print('-'*30)

运行结果:


http://www.kler.cn/a/613362.html

相关文章:

  • VectorBT:使用PyTorch+LSTM训练和回测股票模型 进阶二
  • GenBI 中如何引入 LLM 做意图路由,区分查数据还是闲聊
  • Android生态大变革,谷歌调整开源政策,核心开发不再公开
  • MAC环境给docker换源
  • 【力扣hot100题】(010)滑动窗口最大值
  • 项目接入通义千问 api 接口实现步骤详解
  • 基于ssm的养老院综合服务系统
  • 项目-苍穹外卖(十五) Apache ECharts+数据统计
  • Blender绘图——旋转曲线(以LCP与RCP为例)
  • Linux系统编程 | 线程的基本概念
  • FLEXlm如何通过web调用
  • Go服务开发高手课(极客讲堂)
  • 为什么大模型在 OCR 任务上表现不佳?
  • 0.雷达信号
  • 什么是uv 和pip的区别是什么
  • leetcode131-分割回文串
  • 构建大语言模型应用:句子转换器(Sentence Transformers)(第三部分)
  • 手机零售行业的 AI 破局与创新降本实践 | OceanBase DB大咖说
  • 探索:如何构建一个自我的AI辅助的开发环境?
  • 淘宝API+爬虫混合方案:合规采集历史价格与评价数据