Python程序设计 实验1:Python基础练习(下)

简介: Python程序设计 实验1:Python基础练习

4. 三位数偶数


编写程序,输出由 1、2、5、8 这四个数字组成的每位数字都不相同的所有三位数偶数。


(1)思路


通过穷举法,将每种可能穷举出来,如果满足三个数字都不同的条件则输出并将计数器加一。


(2)编程并实现


# 定义列表以存各个数字  
num = [1, 2, 5, 8]  
# 定义计数器  
count = 0  
# 暴力穷举每一种可能  
for i in range(0, 4):  
    for j in range(0, 4):  
        for k in range(0, 4):  
            if (i != j and i != k and j != k):  
                count += 1  
                print(num[i]*100+num[j]*10+num[k])  
# 统计总数字个数  
print("There are", count, "different numbers.")  


通过暴力穷举每一种可能,并判断是否各个数位都不同,如果满足条件则输出并将计数加一。


(3)运行并测试


开始运行后结果输出如下:


77d97f74314040f296ba6c39f5454c16.png


5. 百钱买汽水问题


假设大瓶汽水5元一瓶,中瓶汽水3元一瓶,小瓶汽水1元三瓶,现在有 100 块钱,想买 100 瓶汽水,列出所有的买法 (提示:4 种)。


(1)思路


暴力穷举每一种可能的购买情况,并判断是否为符合题意的购买,如果符合则将大中小各买多少瓶输出。如果不符合则进行下一组尝试。


(2)编程并实现


# 暴力穷举每一种可能  
 i in range(0, 21):  
 for j in range(0, 34):  
     # 如果超过100元则开始尝试下一组  
     if 5 * i + 3 * j > 100:  
         break  
     # 如果符合则输出  
     if i + j + (100 - 5 * i - 3 * j) * 3 == 100:  
         print("large:", i, "medium:", j,"small:", (100 - 5 * i - 3 * j) * 3)  


暴力穷举每一种购买的可能,如果符合条件则输出。


(3)运行并测试


开始运行后输出结果如下:


60ec72e1827346bb942712f487d594a2.png


6. 乘方


编写程序,输入正整数a,按照以下格式输出乘方结果。

1 2 1

2 3 8

3 4 81

4 5 1024

5 6 15625

a a+1 a**(a+1)


(1)思路


先读入数字num,再通过for循环依次循环遍历每一个数值,并输出对应的数值


(2)编程并实现

# 输入num  
num = eval(input("Please input a number:"))  
for i in range(1, num+1):  
    print(i, i + 1, i ** (i + 1))  

先输入num,并利用for循环进行遍历依次输出


(3)运行并测试


①开始运行程序,将提示输入一个数字:


58e67e99123541d898198ebc7ff47339.png


②输入对应数字后将输出对应乘方:


b7b8565e7c2c455a8719b1d389f6a0c5.png


7. 阶乘


编写代码以按相反顺序打印阶乘结果。例如输入 n=10,文字输出为小于等于n的所有合数的阶乘(注:n的阶乘是123*…*n;不能使用math.factorial() 函数)。

10!: 3628800

9!: 362880

8!: 40320

6!: 720

4!: 24


(1)思路


先读入数字num,再通过for循环利用做差完成反向运算,对于每一个数字,通过for循环依次做除法判断是否为其因子的方式来判断是否为合数,如果是合数则再利用for循环计算阶乘,如果不是,则判断下一个数字。


(2)编程并实现

# 输入num  
num = eval(input("Please input a number:"))  
# 通过for进行遍历判断并输出  
for i in range(1, num + 1):  
    # 如果小于等于2 一定不是合数  
    if num + 1 - i <= 2:  
        continue  
    # 循环做除法判断是否为质数  
    flag = 2  
    while flag < num - i:  
        if (num + 1 - i) % flag == 0:  
            break  
        flag += 1  
    # 如果是质数  
    if flag == num - i:  
        continue  
    # 是合数则输出  
    print(num + 1 - i, end="")  
    print("!:", end="")  
    res = 1  
    # 通过循环计算阶乘  
    for j in range(1, num + 2 - i):  
        res *= j  
    print(res)  


先输入数字,然后通过for循环进行依次循环判断,此处为了实现倒序输出,需要进行做差。获取输入后,对于每一个数字,先通过for循环来判断是否为合数,如果是合数则再通过for循环计算阶乘并输出,如果不是,则对下一个数进行判断。


(3)运行并测试


①编写

d177e5f5b5d3476ab5e22f33626f1f38.png


② 输入对应数字后将计算并输出结果:

cba1e1ea659842fba901c1892c66fa37.png


8. 计算最大公约数


找到两个整数的最大公约数 (the greatest common divisor: GCD)

例子:


Enter the first number: 12
Enter the second number: 6
GCD of 12 and 6 is 6


(1)思路


先读入两个数字,然后通过欧几里得辗转相除法计算最大公约数。


(2)编程并实现

   # 输入两个数字  
a = num1 = eval(input("Enter the first number: "))  
b = num2 = eval(input("Enter the second number: "))  
# 利用欧几里得辗转相除法计算最大公因数  
temp = num1 % num2  
while temp != 0:  
    num1 = num2  
    num2 = temp  
    temp = num1 % num2  
# 输出结果  
print("GCD of", a, "and", b, "is", num2)  


先输入数字,然后通过欧几里得辗转相除算法获取最大公因数。


(3)运行并测试


①运行程序,将提示输入两个数字:


835f611b82fc4f6b8d67c9e383c98db6.png


②输入完成后即输出结果:


6fac40aa9cb248d69b57e09a15419533.png


实验结论


通过本次实验,我学会了Python的基本语法,循环,判断等使用,学会了使用Python对代码进行编写。也明白了Python与之前学习的C/C++,Java有一些不同之处,比如嵌套关系使用缩进而不是使用大括号表示等等。

在本次编程过程中,也遇到了一些问题:


由于Python有数据类型自动识别,有时会产生不必要的精度损失,需要进行类型的强制转换,比如本次实验的第二题,如果不对num进行类型转换,将发生精度损失而导致错误。


87a389e5b5484fdf98a53a50163fea0d.png

e083efafb8a44baa9def8ccc6bffe1b1.png


要对特殊数据进行特殊分析。在编写第七题的代码时,最开始忘记考虑1既不是质数也不是合数而发生错误

这些都告诉我们,在进行代码编写的过程中,务必要认真仔细,如果不仔细可能会发生失之毫厘谬以千里的事情!



相关文章
|
5月前
|
算法 数据可视化 Python
使用 Python 模拟蒙特卡洛实验
使用 Python 模拟蒙特卡洛实验
89 1
|
6月前
|
机器学习/深度学习 测试技术 数据处理
KAN专家混合模型在高性能时间序列预测中的应用:RMoK模型架构探析与Python代码实验
Kolmogorov-Arnold网络(KAN)作为一种多层感知器(MLP)的替代方案,为深度学习领域带来新可能。尽管初期测试显示KAN在时间序列预测中的表现不佳,近期提出的可逆KAN混合模型(RMoK)显著提升了其性能。RMoK结合了Wav-KAN、JacobiKAN和TaylorKAN等多种专家层,通过门控网络动态选择最适合的专家层,从而灵活应对各种时间序列模式。实验结果显示,RMoK在多个数据集上表现出色,尤其是在长期预测任务中。未来研究将进一步探索RMoK在不同领域的应用潜力及其与其他先进技术的结合。
191 4
|
8月前
|
人工智能 数据挖掘 大数据
爆赞!GitHub首本标星120K的Python程序设计人工智能案例手册
为什么要学习Python? Python简单易学,且提供了丰富的第三方库,可以用较少的代码完成较多的工作,使开发者能够专注于如何解决问题而只花较少的时间去考虑如何编程。此外,Python还具有免费开源、跨平台、面向对象、胶水语言等优点,在系统编程、图形界面开发、科学计算、Web开发、数据分析、人工智能等方面有广泛应用。尤其是在数据分析和人工智能方面,Python已成为最受开发者欢迎的编程语言之一,不仅大量计算机专业人员选择使用Python进行快速开发,许多非计算机专业人员也纷纷选择Python语言来解决专业问题。 由于Python应用广泛,关于Python的参考书目前已经有很多,但将Pytho
|
8月前
|
分布式计算 NoSQL 物联网
麻省理工IOT教授撰写的1058页Python程序设计人工智能实践手册!
Python是世界上最流行的语言之一,也是编程语言中使用人数增长最快的一种。 开发者经常会很快地发现自己喜欢Python。他们会欣赏Python的表达力、可读性、简洁性和交互性,也会喜欢开源软件开发环境,这个开源环境正在为广泛的应用领域提供快速增长的可重用软件基础。 几十年来,一些趋势已经强有力地显现出来。计算机硬件已经迅速变得更快、更便宜、更小;互联网带宽已经迅速变得越来越大,同时也越来越便宜;优质的计算机软件已经变得越来越丰富,并且通过“开源”方式免费或几乎免费;很快,“物联网”将连接数以百亿计的各种可想象的设备。这将导致以快速增长的速度和数量生成大量数据。 在今天的计算技术中,最新的创新
|
8月前
|
Python
Python推导式:小练习
Python推导式:小练习
|
8月前
|
分布式计算 NoSQL 物联网
麻省理工IOT教授撰写的1058页Python程序设计人工智能实践手册!
Python是世界上最流行的语言之一,也是编程语言中使用人数增长最快的一种。 开发者经常会很快地发现自己喜欢Python。他们会欣赏Python的表达力、可读性、简洁性和交互性,也会喜欢开源软件开发环境,这个开源环境正在为广泛的应用领域提供快速增长的可重用软件基础。
|
8月前
|
Python
Python 练习实例35
Python 练习实例35
|
8月前
|
Python
Python 练习实例34
Python 练习实例34
|
8月前
|
Python
Python 练习实例36
Python 练习实例36
|
8月前
|
机器学习/深度学习 TensorFlow API
Keras是一个高层神经网络API,由Python编写,并能够在TensorFlow、Theano或CNTK之上运行。Keras的设计初衷是支持快速实验,能够用最少的代码实现想法,并且能够方便地在CPU和GPU上运行。
Keras是一个高层神经网络API,由Python编写,并能够在TensorFlow、Theano或CNTK之上运行。Keras的设计初衷是支持快速实验,能够用最少的代码实现想法,并且能够方便地在CPU和GPU上运行。

热门文章

最新文章