首页 > 编程语言 >python实战练习题二

python实战练习题二

时间:2024-05-06 16:23:38浏览次数:16  
标签:练习题 实战 10 python range num result print data

"""
第一题:求解回文字符串
回文是一个正读和反读都一样的字符串。
例如:abcba 12321 是回文字符串 hello 123456 不是回文字符串
"""
s = input("请输入字符串:")
s2 = s[::-1]        # 字符串逆序
if s == s2:
    print("{} 是回文字符串!".format(s))
else:
    print("{} 不是回文字符串!".format(s))

 

"""
第二题:猜数字小游戏
需求分析:
随机生成一个 100 以内的整数,共有 10 次机会开始游戏,输入猜测的数字。
如果猜小了,则提示:猜小了
如果猜大了,则提示:猜大了
猜对了,则提示:猜对了,并且结束游戏
10 次机会用完还没猜对,提示:游戏结束,没有猜到。
"""
import random

number = random.randint(1, 100)
print("系统生成的随机数:", number)
for i in range(10):
    choice = int(input("请输入你要猜测的数字:"))
    if choice > number:
        print("猜大了!")
    elif choice < number:
        print("猜小了!")
    else:
        print("猜对了,真棒!")
        break
    print(f'还剩{9 - i}次机会!')
else: # 这种情况:else 和 for 循环对齐,只有 for 循环全部执行完,没有出现任何 break 情况时,才会执行 else 语句
    print('游戏结束,你没有猜到!')

 

"""
第三题:数字组合
有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
"""
num = 0
for a in range(1, 5):           # 遍历第一个数
    for b in range(1, 5):       # 遍历第二个输
        for c in range(1, 5):   # 遍历第三个数
            if ((a != b) and (a != c) and (b != c)):    # 每一个数不能想通
                print(a, b, c)
                num += 1
print("1,2,3,4 组成互不相同且无重复数字的三位数总量:", num)

 

"""
第四题:输出九九乘法表
程序分析 分行与列考虑,共9行9列,i控制行,j控制列。
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
"""
for i in range(1, 10):
    for j in range(1, i + 1):
        print('%d*%d=%d' % (i, j, i * j), end=" ")
    print()

 

"""
第五题:求解 1000 以内的所有完数
一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。
程序分析 将每一对因子加进集合,在这个过程中已经自动去重。最后的结果要求不计算其本身。
"""
# 定义一个函数:求解一个数的所有因数的函数
def factor(num):
    result = set()
    for i in range(1, num // 2 + 1):        # 只需计算到这个数的一半即可
        if num % i == 0:
            result.add(i)
    return result

print("2 ~ 1000 之间的所有完数为:", end=" ")
for data in range(2, 1001):
    if data == sum(factor(data)):
        print(data, end=" ")

 

"""
第六题:阶乘求和
求1+2!+3!+…+10!的和。
"""
def fac(num):
    result = 1
    for i in range(1, num + 1):
        result = result * i
    return result

sumValue = 0
for i in range(1, 10):
    sumValue = sumValue + fac(i)
print("1+2!+3!+…+10!的和为:", sumValue)

 

"""
第七题:找出两个列表 lst1 lst2 共同存在的元素
例如:lst1 = [1, 2, 3, 4, 5, 5] lst2 = [2, 5, 6, 8, 9]
输出:共同的元素为:{2, 5}
"""
lst1 = [1, 2, 3, 4, 5, 5]
lst2 = [2, 5, 6, 8, 9]
result = set()      # 有可能会存在重复的元素,需要去重
for i in lst1:
    count = lst2.count(i)
    if count > 0:
        result.add(i)
print("两个集合的共同元素为:", result)


"""
第八题:计算两个元祖去重后的元素,以及元素的个数
例如:s1 = (1, 2, 3, 4, 5, 5) s2 = (2, 5, 6, 7, 8)
输出:去重后的元素为:{1, 2, 3, 4, 5, 6, 7, 8} 个数为:8
"""
s1 = (1, 2, 3, 4, 5, 5)
s2 = (2, 5, 6, 7, 8)
result = set(s1)        # 元祖1 直接强制类型转换为集合 result
for i in s2:
    result.add(i)
print("去重后的元素为:{},个数为:{}".format(result, len(result)))

 

"""
第九题:字符串处理成字典类型
将字符串:"k:1|k1:2|k2:3|k3:4",处理成 python 字典:{'k':'1', 'k1':'2', 'k2':'3','k3':'4' }
"""
str1 = "k:1|k1:2|k2:3|k3:4"
str_list = str1.split('|')
d = {}
for l in str_list:
    key, value = l.split(':')
    d[key] = value
print("处理之后的字典为:", d)

 

"""
第十题:自定义函数,实现 len() 统计集合的元素个数
集合有可能为:字符串,列表,元祖,字典,集合等
"""
# 定义等同于 len() 功能的函数,求解集合的长度
def lenFun(data):
    result = 0
    if isinstance(data, str):
        for i in data:
            result = result + 1
    elif isinstance(data, list):
        for i in data:
            result = result + 1
    elif isinstance(data, tuple):
        for i in data:
            result = result + 1
    elif isinstance(data, set):
        for i in data:
            result = result + 1
    elif isinstance(data, dict):
        for key in data.keys():
            result = result + 1
    else:
        print("输入的数据有误,不能统计数据的长度!")
        result = -1
    return result


print(lenFun("123456"))  # 6
print(lenFun([1, 2, 3, 4, 5]))  # 5
print(lenFun((1, 2, 3, 4, 5)))  # 5
print(lenFun({1, 2, 3, 4, 5, 6}))  # 6
print(lenFun({"name": "大超", "age": 28, "hoppy": ["打羽毛球", "跑步"]}))  # 3

 





标签:练习题,实战,10,python,range,num,result,print,data
From: https://www.cnblogs.com/blogtech/p/18175231

相关文章

  • 《深度学习原理与Pytorch实战》(第二版)(三)11-15章
    第11章神经机器翻译器——端到端机器翻译神经机器翻译,google旗下的NMT编码-解码模型:用编码器和解码器组成一个翻译机,先用编码器将源信息编码为内部状态,再通过解码器将内部状态解码为目标语言。编码过程对应了阅读源语言句子的过程,解码过程对应了将其重组为目标语言的过程——......
  • python常见的实战练习题一
    """第一题:求解水仙花数水仙花数,也被称为自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrongnumber),是一个n位数(n≥3),其每个位上的数字的n次幂之和等于它本身。例如,三位数153是一个水仙花数,因为1^3+5^3+3^3=153。在三位数中,除了153,还有370、371和407也是水仙花......
  • Hyperf 的AOP 面向切面编程实战
    概念AOP为 AspectOrientedProgramming 的缩写,意为:面向切面编程,通过动态代理等技术实现程序功能的统一维护的一种技术。AOP是OOP的延续,也是Hyperf中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的......
  • Python高阶---反射
    ======================================反射:hasattr:输入一个字符串,判断对象有没有这个方法或属性getattr:获取对象属性或方法的引用。如果是方法,则返回方法的引用;如果是属性,则直接返回属性值;如果该方法或属性不存在,则抛出异常。setattr:动态添加一个方法或属性delatt......
  • 如何用Python开发一个命令行工具
    如何编写一个python命令行工具importargparsedefparse_args():parser=argparse.ArgumentParser()parser.add_argument("-nc","--test_a",type=int,default=10,help="testA")parser.add_argument(&quo......
  • Python高阶---魔法方法
    魔法方法:通过dir(函数名)查看到的方法中以双下划线开始,以双下划线结束的方法。=========================================classStudent:definit(self,name,age):"""负责初始化类的实例,实例是由__new__方法传递过来的,也就是这里的self:paramname::paramage:"""self......
  • Python文本统计与分析从基础到进阶
    本文分享自华为云社区《Python文本统计与分析从基础到进阶》,作者:柠檬味拥抱。在当今数字化时代,文本数据无处不在,它们包含了丰富的信息,从社交媒体上的帖子到新闻文章再到学术论文。对于处理这些文本数据,进行统计分析是一种常见的需求,而Python作为一种功能强大且易于学习的编程语言......
  • [数据分析与可视化] Python绘制数据地图3-GeoPandas使用要点-转载
    [数据分析与可视化]Python绘制数据地图3-GeoPandas使用要点 本文主要介绍GeoPandas的使用要点。GeoPandas是一个Python开源项目,旨在提供丰富而简单的地理空间数据处理接口。GeoPandas扩展了Pandas的数据类型,并使用matplotlib进行绘图。GeoPandas官方仓库地址为:GeoPandas。Ge......
  • 208. 实现 Trie (前缀树)-python
    Trie(发音类似"try")或者说前缀树是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。请你实现Trie类:Trie()初始化前缀树对象。voidinsert(Stringword)向前缀树中插入字符串word。booleansearch(St......
  • 207. 课程表-python
    你这个学期必须选修numCourses门课程,记为0到numCourses-1。在选修某些课程之前需要一些先修课程。先修课程按数组prerequisites给出,其中prerequisites[i]=[ai,bi],表示如果要学习课程ai则必须先学习课程bi。例如,先修课程对[0,1]表示:想要学习课程0,你......