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

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)

运行结果:

相关文章:

  • 从排泄危机到数字免疫:解码餐饮业“全息食安大脑“的进化逻辑
  • SQL 链接服务器的查询提示“不允许使用远程表值函数调用”(NOLOCK)
  • 【Deepseek】Deepseek学习
  • vscode连接服务器失败问题解决
  • JavaScript中闭包的使用
  • 【vLLM 学习】快速入门
  • React19源码系列之Hooks(useRef)
  • SQL中累计求和与滑动求和函数sum() over()的用法
  • WebRTC简介及应用
  • 惠购供应链 SAAS 系统正式上线,构建数字商业生态版图
  • InfluxDB OSS v2的数据写入与查询——以C#为例操作
  • uvm基本知识
  • react 封装无缝滚动组件
  • get_seed协议
  • 躺平生产力
  • 如何一键安装所有Python项目的依赖!
  • 5.1 WPF路由事件以及文本样式
  • C笔记20250325
  • Golang使用 ip2region 查询IP的地区信息
  • 某Bzhan登录逆向(纯算法)
  • 网站建设相关的网站/seo链接优化建议
  • 高校里做网站的工作/长沙推广引流
  • 哈尔滨政府网站建设/app营销策略有哪些
  • 商务网站建设与维护流程/永久免费crm客户管理系统
  • 墨刀做的网站设计/seo算法优化
  • 深圳建网页/深圳seo优化排名推广