首页 > 编程语言 >python常见的实战练习题一

python常见的实战练习题一

时间:2024-05-06 16:11:32浏览次数:16  
标签:练习题 实战 10 python sum value 整数 print input

"""
第一题:求解水仙花数
水仙花数,也被称为自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),是一个n位数(n≥3),其每个位上的数字的n次幂之和等于它本身。
例如,三位数153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。在三位数中,除了153,还有370、371和407也是水仙花数。
"""
print("100 ~ 1000 之间的所有水仙花为:", end=" ")
for i in range(100, 1000):
    sum = 0     # 定义一个变量,记录这个数各个位置上的数三次方的和
    num = i
    while num > 0:
        value = num % 10      # 先求解出个位,然后求解出十位,最后求解出百位
        sum = sum + value * value * value   # sum 依次相加各个位置上数的三次方和
        num = num // 10        # 求解出十位,百位
    if sum == i:
        print(i, end=" ")
print()

"""
第二题:求100以内的所有质数
所谓质数:除了本身和1,没有其他的约数
"""
print("100以内的所有质数为:")
for i in range(2, 100):
    j = 2                   # 初始化 j = 2
    while j < i:            # 从 2 ~ i - 1 之间,每一个数都需要判断是否能被 i 整除
        if i % j == 0:      # 如果 j 能被 i 整除时,就说明:j 是 i 的因数
            break           # 直接跳出就近的所属循环
        j = j + 1
    if i == j:      # 若 while 循环执行完毕,没有一个 j 能被 i 整除时,此时 i 一定等于 j 就说明 i 是质数
        print(i, end=" ")

"""
第三题:打印三角形:给定一个整数 n,在屏幕上输出一个直角三角形
例如:输入整数 5,输出:
*
**
***
****
*****
"""
n = int(input("(输出三角形)请输入一个整数:"))
for row in range(1, n + 1):         # 每一行进行处理
    for j in range(1, row + 1):     # 一行的所有 *
        print("*", end="")
    print() # 一行打印完之后,回车换行

"""
第四题:给一个整数,求出各个位上的和
例如:n = 12345 输出:1+2+3+4+5=15
以下是三种方式
"""
# 第一种求解方式
n = int(input("(求各个位置上的数之和)请输入一个整数:"))
sum_value = 0
while n > 0:
    sum_value = sum_value + n % 10
    n = n //10
print("这个数的各个位上的数之和:", sum_value)

# 第二种求解方式
n = int(input("(求各个位置上的数之和)请输入一个整数:"))
lst = []
while n > 0:
    lst.append(n % 10)
    n = n // 10
print("这个数的各个位上的和:", sum(lst))

# 第三种求解方式
n = input("(求各个位置上的数之和)请输入一个整数:")   # n 个字符串
sum_value = 0
for i in n:
    sum_value = sum_value + int(i)      # 字符串遍历,取出来每一个字符,然后强转为 int 类型
print("这个数的各个位上的和:", sum_value)


"""
第五题:输入一个整数 n 求出第 n 个整数的斐波拉切数列
斐波那契数列:1,1,2,3,5,8,13,21,34,55,89...,不难发现一个规律,实际上从第三个数开始,每个数字的值都是前两个数字的和;
例如:输入的整数为 5 输出:5
"""
n = int(input("(求解斐波拉切数列)请输入整数:"))
if n == 1 or n == 2:
    print(1)
else:
    value1, value2 = 1, 1   # 由于下一个数,需要前面两个数的累加和,所以需要定义两个变量存储前面两个变量的值
    for i in range(3, n + 1):
        result = value1 + value2
        value1 = value2
        value2 = result
    print("求解的斐波拉切数列的值为:", result)

"""
第六题:求解两个数的最大公约数和最小公倍数
备注:最小公倍数 = 两整数的乘积 ÷ 最大公约数
(1)辗转相除法
有两整数a和b:
① a % b 得余数 c
② 若 c = 0,则 b 即为两数的最大公约数
③ 若 c ≠ 0,则 a = b,b = c,再回去执行①
例如求 27 和 15 的最大公约数过程为:
27 % 15 = 12,15 % 12 = 3,12 % 3 = 0因此,3 为 最大公约数
"""
a= int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))
if b > a:     # 如果输入的第二个整数 > 第一个整数,互换一下位置
    a, b = b, a
m = a       # 记录最大值 m = a
n = b       # 记录次大值 n = b
while b != 0:
    value = a % b       # 两个数求余
    a = b               # 次大值赋值给最大值
    b = value           # 余数赋值给次大值
print("两个数的最大公约数:", a)
print("两个数的最小公倍数:", (m * n) // a)

"""
第七题:数的逆序输出
例如:1234 输出:4321
思路:数进行拆分,然后依次反向进行 * 10 做累加
"""
n = int(input("(数的逆序输出)请输入一个整数:"))
reverse_value = 0
while n > 0:
    value = n % 10        # 数的位置进行拆分
    reverse_value = reverse_value * 10 + value    # 拆分完之后进行 * 10 做累加
    n = n // 10           # n 进行变化
print("逆序输出:", reverse_value)

"""
第八题:判断随机输入的年份是不是闰年??
符合条件之一是闰年:1. 能被4整除,但不能被100整除 2. 能被400整除!
"""
year = int(input("请输入年份:"))
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
    print("{}是闰年!".format(year))
else:
    print("{}不是闰年!".format(year))

"""
第九题:求解四叶玫瑰数
四叶玫瑰数是 4 位数的自幂数。自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。
(例如:当 n 为 3 时,有 1^3 + 5^3 + 3^3 = 153,153 即是 n 为 3 时的一个自幂数,3 位数的自幂数被称为水仙花数)。
"""
print("1000 ~ 10000 之间所有的四叶玫瑰数为:")
for i in range(1000, 10000):
    i1 = i // 1000          # 取千位数字 1234//1000=1
    i2 = i // 100 % 10      # 取百位数字 1234//100=12  12%10=2
    i3 = i // 10 % 10       # 取十位数字 1234//10=123  123%10=3
    i4 = i % 10             # 取个位数字 1234%10=4

    if i1 ** 4 + i2 ** 4 + i3 ** 4 + i4 ** 4 == i:
        print(i, end=" ")
print()

"""
第十题:逆序输出字符串
例如:abcdefg 输出:gfedcba
"""
# 求解方式一
str = input("请输入字符串:")
print(str[::-1])

# 求解方式二
s = input("请输入字符串:")
lst = []
for x in range(0, len(s)):
    lst.append(s[x])
print(''.join(lst))     # 使用列表的拼接方式,这里使用 空字符串



标签:练习题,实战,10,python,sum,value,整数,print,input
From: https://www.cnblogs.com/blogtech/p/18175222

相关文章

  • 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,你......
  • AI实战 | 手把手带你打造智能待办助手
    背景大家好,我是努力的小雨。今天我想分享一下搭建待办助手的经历。起初,我并没有什么特别的创意点子。但在4月16日的百度Create大会上,我看到了小度的大模型加持使得其变得更加智能。我被一场示例所震撼,小度竟然演示了如何安排日程,这不就是一个完美的待办助手吗?我一度认为待办应用......
  • aardio爬虫) 实战篇:逆向有道翻译web接口
    前言之前的文章把js引擎(aardio封装库)微软开源的js引擎(ChakraCore))写好了,这篇文章整点js代码来测一下bug。测试网站:https://fanyi.youdao.com/index.html#/逆向思路逆向思路可以看有道翻译js逆向(MD5加密,AES加密)附完整源码,逆向我就不赘述了。这篇文章说一下怎么将文章中给的......