Pycharm(七):几个简单案例

一.剪刀石头布

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

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

python 复制代码
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的倍数的总数有多少个。

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

python 复制代码
'''
案例:报数字游戏
考察点:统计(计数)思想
需求:键盘录入参与游戏的总人数,统计个位数不为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

python 复制代码
#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的内容。

python 复制代码
#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.条件判断。

python 复制代码
#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)

运行结果:

下期继续分享,有实力的老板打赏一下,万分感谢!!!

相关推荐
漫谈网络3 分钟前
闭包与作用域的理解
python·装饰器·闭包·legb
滴答滴答嗒嗒滴4 分钟前
Python小练习系列 Vol.5:数独求解(经典回溯 + 剪枝)
python·深度优先·剪枝
Alger_Hamlet14 分钟前
Pycharm 2024.3 Python开发工具
ide·python·pycharm
techdashen15 分钟前
性能比拼: Go(Gin) vs Python(Flask)
python·golang·gin
techdashen41 分钟前
性能比拼: Go标准库 vs Python FastAPI
python·golang·fastapi
键盘上的GG小怪兽GG1 小时前
Centos主机检查脚本
开发语言·网络·python
ak啊1 小时前
PyTorch框架-Python GPU编程
pytorch·python·gpu
Python之栈1 小时前
再见VS Code!Google IDE 正颠覆传统开发体验
ide·vscode·python
lzq6031 小时前
【Python实战】用Pandas轻松实现Excel数据清洗与可视化
python·excel·pandas
芥子沫1 小时前
远程装个Jupyter-AI协作笔记本,Jupyter容器镜像版本怎么选?安装部署教程
ide·人工智能·jupyter