python第三次作业

这篇文章提供了一系列Python编程题目,涵盖了数字操作、逻辑判断、商品折扣计算、鸡兔同笼问题、猜拳游戏、标识符规则、质数判断、水仙花数、数字处理和列表操作等。这些题目旨在锻炼编程思维和解决实际问题的能力。
摘要由CSDN通过智能技术生成

目录

1、要求:用户输入两个数a、b。如果a能被b整除或a加b大于1000,则输出a;否则输出b 

2、要求:请输入一个数,判断这个数是偶数还是奇数,如果使用偶数,请判断从1到该数是3的倍数有哪些,如果是奇数,请判断从1到该数是5的倍数有哪些

3、某商店T恤的价格为35元/件(2件9折,3件以上8折),裤子的价格为120 元/条(2条以上9折).小明在该店买了3件T恤和2条裤子,请计算并显示小明应该付多少钱? 

4、请判断从1到该数是5的倍数有哪些 

5、要求:鸡兔同笼,从上面看有35个头,从下面看有94只脚,请问鸡有几只,兔有几只?

6、猜拳游戏:石头、剪刀、布的游戏 (借鉴别人的代码及思路)

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

8、求50~150之间的质数是那些?

9、要求:打印输出标准水仙花数,输出这些水仙花数

10、要求:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除.

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

12、要求: 有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币

13、如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数". 

14、如何将0-10随机存入列表中

15、列表的反转,列表的排序:

16、python 判断一个list列表是否包含另一个list列表

​编辑

17、两个列表进行合并操作

18、将list中的重复数据去重,至少使用两种方案


1、要求:用户输入两个数a、b。如果a能被b整除或a加b大于1000,则输出a;否则输出b 

代码:

a = int (input("请输入a:"))
b = int (input("请输入b:"))
if b % a == 0 or a + b > 1000:
	print(f"{a}")
else:
	print(f"{b}")

输出结果:

2、要求:请输入一个数,判断这个数是偶数还是奇数,如果使用偶数,请判断从1到该数是3的倍数有哪些,如果是奇数,请判断从1到该数是5的倍数有哪些

代码:

index = int (input("请输入一个数:"))
 
if index % 2 == 0:
	print(f"{index}为偶数,从1到{index}是三的倍数的有:")
	for count1 in range(1,index+1):
		if count1 % 3 == 0:
			print(count1)
 
else:
	print(f"{index}为奇数,从1到{index}是五的倍数的有:")
	for count1 in range(1,index+1):
		if count1 % 5 == 0:
			print(count1)

输出结果:

3、某商店T恤的价格为35元/件(2件9折,3件以上8折),裤子的价格为120 元/条(2条以上9折).小明在该店买了3件T恤和2条裤子,请计算并显示小明应该付多少钱? 

代码:

# Tshirt = int(input("请输入你要购买的T恤数目:"))
# pants = int (input("请输入你要购买的裤子数目:"))
# count1 = 35
# count2 = 120
# if Tshirt == 2 :
#     price1 =count1 * 0.9*Tshirt
# elif Tshirt == 1:
#     price1 = count1 
# else :
#     price1 = count1 * 0.8*Tshirt
# if pants >= 2 :
#     price2 = count2 * 0.9 *pants
# elif pants ==1 :
#     price2 = count2  
# print(f"应付的钱为{price1+price2}")

输出结果:

 

4、请判断从1到该数是5的倍数有哪些 

count = int(input("请输入你要输入的数:"))
for  i in range(1,count+1):
    if i % 5 == 0 :
        print(i)

输出结果:

5、要求:鸡兔同笼,从上面看有35个头,从下面看有94只脚,请问鸡有几只,兔有几只?

代码:

for a in range(1,36):
	for b in range(1,36):
		if a + b == 35 and 2 * a + 4 * b == 94 :
			print(f"鸡的个数为:{a} 兔的个数为:{b}")

输出结果:

6、猜拳游戏:石头、剪刀、布的游戏 (借鉴别人的代码及思路)

import random
computer =random.randint(0,2)
print(f"随机生成的数是{computer}")
print("提示:拳头(0),剪刀(1),布(2)")
index = int(input("请出拳头(0),剪刀(1),布(2):"))
if(index == 0 and computer==1)or(index ==1 and computer==2)or(index== 2 and computer == 0):
    print("恭喜你,获得了胜利")
elif(index == computer):
    print("平局")
else:
    (index == 0 and computer==2)or(index ==1 and computer==0)or(index== 2 and computer == 1)
    print("你输了")

结果:

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

答:¥a C,$a@12 E

8、求50~150之间的质数是那些?

代码:

or i in range(50,151):
    flag = True
    for j in range(2,i//2+1):
        if i %j ==0:
            flag = False
            break

    if flag == True:
        print(i)

输出结果: 

拓展:输入一个数,判断其是否为质数:

num = int(input("请输入一个正整数:"))
while num <= 1:    
	print("请输入一个大于1的正整数:")
else:    
	for i in range(2, num):        
		if num % i == 0:          
			print(num, "不是质数")            
			break    
	else:        
		print(num, "是质数")

输出结果:

9、要求:打印输出标准水仙花数,输出这些水仙花数

for i in range(100,1000):
    a = i // 100            #百位
    b = i % 100 // 10       #十位
    c = i % 10              #个位

    if i == a**3 +b**3+c**3 :
        print(i)

输出结果:

10、要求:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除.

代码段:

#第一种方法
num = int(input("请输入一个大于9的整数:"))
while num <= 9 :
    num = int(input("请输入一个大于9的整数!!!!!:"))
num1 = str(num)
count = 0
for i in num1:
    count +=int(i)
if (num-count) % 9 ==0:
    print("恭喜你,校验通过")
else:
    print("对不起,校验失败")


# 第二种方法
num = int(input("请输入一个大于9的整数:"))
while num <= 9 :
    num = int(input("请输入一个大于9的整数!!!!!:"))
num1 =num
count = 0
while num !=0 :                    
    count += num % 10
    num //=10

if (num1-count) % 9 ==0:            #此处为num1的原因是,num在除以后已经变成了个位数子,所以验证一定失败
    print("恭喜你,校验通过")
else:
    print("对不起,校验失败")

实验结果:

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

代码:

for i in range(10000,100000):
    a = i % 10              #个位
    b = i % 100 //10        #十位
    c = i % 1000 // 100     #百位
    d = i % 10000 //1000    #千位
    e = i //10000           #万位
    B = a + b *10 + c*100 + d*1000 + e*10000 + 7*100000 
    A = 7 + a*10 + b *100 + c*1000 + d*10000 + e*100000
    if A * 5 == B:
        print(i)

输出结果:

12、要求: 有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币

代码:

coins=[10, 8, 5, 3, 27, 99]
count = 0
for i in coins:
    if i % 2 == 0 :
        count += i //2
    else:
        count += i //2 +1
print(f"最少需要{count}次")

 

13、如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数". 

代码:

ls = []
for i in range(2,101):
    flag = True
    for j in range(2,i//2+1):
        if i % j == 0:
            flag = False
            break
    if flag :
        ls.append(i)

for i in range(1,len(ls)):
    if ls[i] - ls[i-1] == 2 :
        print(f"100以内的数,两个素数互为孪生数的是{ls[i]}和{ls[i-1]}")

输出结果:

14、如何将0-10随机存入列表中

代码:

import random
ls = [1,2,4,5,23]
count = random.randint(0,10)
ls.append(count)
print(ls)

输出结果:

15、列表的反转,列表的排序:

代码

列表的反转:
ls = [1,2,4,5,23]
ls.reverse()
print(ls)


列表的排序:
ls = [1,2,4,5,23]
ls.sort()
print(ls)
列表的倒排序:
ls = [1,2,4,5,23]
ls.sort(reverse=True)
print(ls)

输出结果:

16、python 判断一个list列表是否包含另一个list列表

ls1 = [32,51,23,61,37]
ls2 = [32,51,41]
print(set(ls2) <=set(ls1))       #ls1是否包含ls2,<= 则表示是否是子集

#第二种方法:
ls1 = [1,2,3,5,4,5,6,7]
ls2 = [1,4,5,3,7]
 
print(f'您输入的列表1是:{ls1}')
print(f'您输入的列表2是:{ls2}')
 
flag = True
for i in ls2:
    if i not in ls1:
        flag = False
        break
if flag == True:
    print('列表2在列表1中')
else:
    print('列表2不在列表1中')

输出结果:

17、两个列表进行合并操作

# ls1 = [32,51,23,61,37]
# ls2 = [32,51,41]
# ls2.extend(ls1)
# print(ls2)

输出结果:

18、将list中的重复数据去重,至少使用两种方案

#第一种方法(运用set的方法,由于set中没有重复,为了防止哈希碰撞)
ls = [32,24,12,62,32,15,24]
count=set(ls)
print(list(count))


#第二种方法(由于先建立一个新的空列表,通过遍历原来的列表,再利用逻辑关系not in 来去重。)
ls=[1,2,3,4,5,1,2,3]
new_ls=[]
for i in ls:
    if i not in new_ls:
    	new_ls.append(i)
print(new_ls)

输出结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值