2021-10-30

本文介绍了几个Python编程练习,包括猜数字游戏、猜拳游戏的实现,以及一系列算法挑战,如图形打印、质数判断、水仙花数等。这些练习涵盖了基本的条件判断、循环控制、数学逻辑和用户交互,是Python初学者巩固基础知识的好材料。
摘要由CSDN通过智能技术生成


作业1:猜数字游戏(明天做)
    电脑随机一个范围内的数,用户输入数据判断,
    如果数大了,提供”数大了“
    成功之后,加上用户是否继续功能

import random
compute_random = random.randint(0, 100)
while True:
	my_num = int(input("请输入您要猜的数字:"))
	if my_num == compute_random:
		print("恭喜您,猜对了,撒花")
		break
	elif my_num > compute_random:
		print("对不起,您猜大了")
	else:
		print("对不起,您猜小了")
C:\Users\山己几>python D:\day1\猜数字游戏.py
请输入您要猜的数字:50
对不起,您猜小了
请输入您要猜的数字:89
对不起,您猜大了
请输入您要猜的数字:70
对不起,您猜大了
请输入您要猜的数字:65
对不起,您猜大了
请输入您要猜的数字:55
对不起,您猜大了
请输入您要猜的数字:54
恭喜您,猜对了,撒花


作业2:猜拳游戏:石头、剪刀、布的游戏

import random
num1=int(input("剪刀(0),石头(1),布(2):"))
num2=int(random.randint(0,2))
"""
1. 用户0 pc2
2. 用户1 pc0
3. 用户2 pc1

"""
num3=int(num1-num2)
if num2==0:
    print("pc出的是剪刀")
elif num2==1:
    print("pc出的是石头")
else :
    print("pc出的是布")
if num3==-2 or num3==1:
    print("你赢了")
elif num3==0:
    print("平局")
else:
    print("你输了")


C:\Users\山己几>python D:\day1\猜拳游戏.py
剪刀(0),石头(1),布(2):1
pc出的是布
你输了

作业3:

    *
    **
    ***
    ****
    *****
    ******


        *
       ***
      *****
     *******
    *********


    *********
     *******
      *****
       ***
        *


        *
       ***
      *****
     *******
    *********
     *******
      *****
       ***
        *

        *
       * *
      *   *
     *     *
    *       *
     *     *
      *   *
       * *
        *

        *
       ***
      * * *
     *  * *
    *********
     *  *  *
      * * *
       ***
        *
       

 

layer = int(input("请输入需要打印的行数:"))
#校验层数必须是奇数行,行数不能小于2
while layer%2 ==0 or layer < 2:
	layer = int(input("对不起,输入有误,请重新输入,按任意键继续~"))
"""上半部分"""
for i in range(1,layer//2+2):
	#定义打印的空格与*的数量
	space = layer-i
	start = 2*i-1
	#内层循环打印每行要显示的内容
	#先打印空格
	for j in range(space):
		print(" ",end="")
	#打印*
	for k in range(start):
		"""注意这里为什么要加2,因为上半部分打印的是长的,即多出来一行"""
		if k == 0 or k == start-1 or i==layer//2+2:
			print("*",end="")
		else:
			print(" ",end="")
	#每行打印完成后需要换行
	print()
"""下半部分"""
#从整除2的部分开始打印,即短的那部分开始,步长为-1,即每行每次缩短
for i in range(layer//2,0,-1):
	#定义打印的空格与*的数量
	space = layer-i
	start = 2*i-1
	#内层循环打印每行要显示的内容
	#先打印空格
	for j in range(space):
		print(" ",end="")
	#打印*
	for k in range(start):
		"""注意这里是下半部分的打印;注意分析条件"""
		if k == 0 or k == start-1:
			print("*",end="")
		else:
			print(" ",end="")	
	#每行打印完成后需要换行
	print()


C:\Users\山己几>python D:\day1\图形打印.py
请输入需要打印的行数:9
        *
       * *
      *   *
     *     *
    *       *
     *     *
      *   *
       * *
        *

作业4、判断以下哪些不能作为标识符(BDEF)
    A、a
    B、¥a
    C、_12
    D、$a@12
    E、false
    F、False

作业5:
    输入数,判断这个数是否是质数(for)
    

作业6:求50~150之间的质数是那些?

import sys
while True:
	print("1.进入系统 2.退出系统")
	choice = int(input("请做出选择:"))
	if choice == 1:
		#使用range()函数来实现可迭代对象
		for num in range(50,151):
			flag = True
			#range(2,num)表示了1-num之间的数字,用num整除这之间的数字,若为0了,则不是素数,反之亦然
			for i in range(2,num):
				if num%i == 0:
					#被整除了,所以不是质数,将flag设置为Flase
					flag = False
					#判断出来后,不需要再循环了,所以直接跳出即可
					break
			if flag:
				print("{}是素数".format(num))
			else:
				#由于题目是只打印素数,所以else语句不做任何输出内容
				pass
	elif choice == 2:
		sys.exit()
	else:
		input("您的输入有误,请重新输入~ 按任意键继续")


C:\Users\山己几>python D:\day1\50~150之间质数.py
1.进入系统 2.退出系统
请做出选择:1
53是素数
59是素数
61是素数
67是素数
71是素数
73是素数
79是素数
83是素数
89是素数
97是素数
101是素数
103是素数
107是素数
109是素数
113是素数
127是素数
131是素数
137是素数
139是素数
149是素数
1.进入系统 2.退出系统
请做出选择:

作业7:打印输出标准水仙花数,输出这些水仙花数

作业8:验证:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除.

num = int(input("请输入一个大于9的整数:"))
if num < 100:
	gewei = num % 10
	shiwei = num // 10
	if (num - (gewei + shiwei)) % 9 == 0:
		print("验证通过")
	else:
		print("验证失败")
elif num > 99 and num < 1000:
	# 三位数的
	gewei = (num%100)%10
	shiwei = (num%100)//10
	bawei = num//100
	if (num - (gewei + shiwei + bawei)) % 9 == 0:
		print("验证通过")
	else:
		print("验证失败")
else:
	pass




C:\Users\山己几>python D:\day1\一个大于9的整数.py
请输入一个大于9的整数:15
验证通过

C:\Users\山己几>

作业9:一个五位数,若在它的后面写上一个7,得到一个六位数A,
        若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此
        五位数.

for i in range(10000,100000):
	gewei = (i%10000)%1000%100%10
	shiwei = (i%10000)%1000%100//10
	baiwei = (i%10000)%1000//100
	qianwei = (i%10000)//1000
	wanwei = i//10000
	#A、B的计算方式
	a = 7+gewei*10+shiwei*100+baiwei*1000+qianwei*10000+wanwei*100000
	b = gewei+shiwei*10+baiwei*100+qianwei*1000+wanwei*10000+7*100000
	if b == a*5:
		print(i)


C:\Users\山己几>python D:\day1\一个五位数.py
14285

C:\Users\山己几>


作业10:有一种最简真分数,它们的分子与分母的乘积都是140,把
        所有这样的真分数从小到大打印出来


作业11:某数被80除所得的商,不但是7的倍数,而且用2,3,4,5,6去
        除余数都是1,求这 个自然数.

 

flag = 0
for i in range(1,1000):
	shang = 80//i
	yushu = i%80
	a = i%2
	b = i%3
	c = i%4
	d = i%5
	e = i%6
	if shang%7==0 and a==1 and b==1 and c==1 and d==1 and e==1:
		flag += 1
		print(i,end="\t")
		#flag为5或10时,换行,用于输出结果易观察
		if flag == 5 or flag == 10:
			print()




C:\Users\山己几>python D:\day1\被80除所得的商.py
121     181     241     301     361
421     481     541     601     661
721     781     841     901     961
C:\Users\山己几>

作业12:编程求出满足以下条件的三位数:它除以11所得的商等于它各位数字之和


作业13:有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币
    [10, 8, 5, 3, 27, 99]

 


作业14:在控制台上,输入如下信息
    a        a^2        a^3
    1        1        1
    2        4        8
    3        9        27

 

作业15:求1~100之间不能被3整除的数之和

 

作业16:给定一个正整数N,找出1到N(含)之间所有质数的总和

 

作业17:在控制台上打印九九乘法表

 

作业18:输入一个年份,判断该年是否是闰年

 

作业19:计算PI(公式如下:PI=4(1-1/3+1/5-1/7+1/9-1.......)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值