首页 > 其他分享 >5.15

5.15

时间:2024-06-05 09:23:13浏览次数:24  
标签:return Python num str 5.15 input page

【附实验报告格式】

Pyhton环境与基础训练

班级:信2205-1  学号:20224074  姓名:王晨宇

实验目的

l  使学生熟悉Python环境的安装与配置,熟悉Python解释器的使用。

l  使学生掌握Python控制语句、函数结构等的基本语法知识和使用。

l  使学生掌握Python的基本数据类型、列表、元组、字典和集合等的基本应用。

实验环境及实验准备

l  所需软件环境为Pyhton 3.x等;

l  掌握Python控制语句和函数结构等基本语法知识;

l  掌握Python的输入输出;

l  掌握Python的基本数据类型、列表、元组、字典和集合等;

实验内容

(一)、练习安装Python解释器

【实验截图】

 

 

(二)、练习搭建Python+Eclipse+pydev编程环境

【实验截图】

<你的安装练习过程截图>

 

(三)、练习安装Python扩展库

>

 

(四)、【Python0002】排列组合序列

题目描述】

用户输入整数n(1<=n<=26)和整数m(m<=n),然后输入n个不同的字母,请编写程序输出在这n个字母中选择m个字母的所有排列序列和组合序列。

【源代码程序】

import itertools

 

# 输入整数n和整数m

n, m = map(int, input().split())

 

# 输入n个不同字母

letters = input().split()

 

# 输出所有排列序列

permutations = itertools.permutations(letters, m)

for perm in permutations:

    print(' '.join(perm))

 

# 输出所有组合序列

combinations = itertools.combinations(letters, m)

for comb in combinations:

    print(' '.join(sorted(comb)))

   

【运行测试

 

(五)、【Python0003】蒙特·卡罗法计算圆周率

题目描述】

蒙特·卡罗方法是一种通过概率来得到问题近似解的方法,在很多领域都有重要的应用,其中就包括圆周率近似值的计问题。假设有一块边长为2的正方形木板,上面画一个单位圆,然后随意往木板上扔飞镖,落点坐标(x,y)必然在木板上(更多的时候是落在单位圆内),如果扔的次数足够多,那么落在单位圆内的次数除以总次数再乘以4,这个数字会无限逼近圆周率的值。这就是蒙特·卡罗发明的用于计算圆周率近似值的方法。编写程序,模拟蒙特·卡罗计算圆周率近似值的方法,输入掷飞镖次数,然后输出圆周率近似值。

【源代码程序】

 

【运行测试

 

(六)、【Python0004】验证6174猜想

题目描述】

1955年,卡普耶卡(D.R.Kaprekar)对4位数字进行了研究,发现一个规律:对任意各位数字不相同的4位数,使用各位数字能组成的最大数减去能组成的最小数,对得到的差重复这个操作,最终会得到6174这个数字,并且这个操作最多不会超过7次。请编写程序验证这个猜想。

【源代码程序】

def kaprekar_iteration(num):

    num_str = str(num)

   

    while len(num_str) < 4:

        num_str = '0' + num_str

   

    count = 0

    result_list = [num_str]

   

    while num_str != '6174' and count < 7:

        asc_num = int(''.join(sorted(num_str)))

        desc_num = int(''.join(sorted(num_str, reverse=True)))

       

        diff = desc_num - asc_num

        num_str = str(diff)

       

        while len(num_str) < 4:

            num_str = '0' + num_str

       

        result_list.append(num_str)

        count += 1

   

    return result_list

 

def verify_kaprekar_conjecture(input_num):

    if len(set(input_num)) != 4:

        return "Input number must have exactly 4 different digits."

   

    result = kaprekar_iteration(int(input_num))

    return ' '.join(result)

 

# 读取输入

input_num = input().strip()

 

# 执行验证

output_result = verify_kaprekar_conjecture(input_num)

print(output_result)

【运行测试

 

(七)、【Python0005】模拟页面调度LRU算法

题目描述】

所谓LRU算法,是指在发生缺页并且没有空闲主存块时,把最近最少使用的页面换出主存块,腾出地方来调入新页面。

问题描述:一进程获得n个主存块的使用权,对于给定的进程访问页面次序,问当采用LRU算法时,输出发生的缺页次数。

【源代码程序】

from collections import deque

 

def lru(page_sequence, n):

    cache = deque(maxlen=n)

    page_faults = 0

 

    for page in page_sequence:

        if page not in cache:

            page_faults += 1

            if len(cache) == n:

                cache.popleft()

            cache.append(page)

        else:

            cache.remove(page)

            cache.append(page)

 

    return page_faults

 

# 读取输入

n = int(input())

page_sequence = list(map(int, input().split()))

 

# 计算缺页次数

page_faults = lru(page_sequence, n)

 

# 输出结果

print(page_faults)

【运行测试

 

(八)、【Python0006】爬楼梯

题目描述】

 假设一段楼梯共n(n>1)个台阶,小朋友一步最多能上3个台阶,那么小朋友上这段楼梯一共有多少种方法。

【源代码程序】

def count_ways(n):

    if n == 1:

        return 1

    elif n == 2:

        return 2

    elif n == 3:

        return 4

    else:

        # 初始化台阶数为1、2、3时的方法数

        a, b, c = 1, 2, 4

        ways = 0

 

        for _ in range(4, n + 1):

            ways = a + b + c

            a, b, c = b, c, ways

 

        return ways

 

# 读取输入

n = int(input())

 

# 计算小朋友上n个台阶的方法数

ways = count_ways(n)

 

# 输出结果

print(ways)

【运行测试

 

(九)、【Python0007】杨辉三角形

题目描述】

输出n(0<n)行杨辉三角形,n由用户输入。

【源代码程序】

def generate_pascal_triangle(n):

    triangle = []

    for i in range(n):

        row = [1] * (i + 1)

        if i > 1:

            for j in range(1, i):

                row[j] = triangle[i - 1][j - 1] + triangle[i - 1][j]

        triangle.append(row)

    return triangle

 

def print_pascal_triangle(triangle):

    for row in triangle:

        for num in row:

            print(f"{num:5}", end="")

        print()

 

# 读取输入

n = int(input())

 

# 生成n行杨辉三角形

pascal_triangle = generate_pascal_triangle(n)

 

# 输出结果

print_pascal_triangle(pascal_triangle)

【运行测试

 

(十)、【Python0008】筛法求素数

题目描述】

用户输入整数n和m(1<n<m<1000),应用筛法求[n,m]范围内的所有素数。

【源代码程序】

def sieve_of_eratosthenes(n, m):

    # 初始化标记数组,True表示素数,False表示非素数

    is_prime = [True] * (m + 1)

    is_prime[0] = is_prime[1] = False

 

    # 使用筛法找出素数

    for i in range(2, int(m ** 0.5) + 1):

        if is_prime[i]:

            for j in range(i * i, m + 1, i):

                is_prime[j] = False

 

    # 输出范围[n, m]内的所有素数

    primes = [i for i in range(n, m + 1) if is_prime[i]]

    return primes

 

# 读取输入

n, m = map(int, input().split())

 

# 应用筛法求解范围[n, m]内的所有素数

result = sieve_of_eratosthenes(n, m)

 

# 输出结果

for prime in result:

    print(prime, end=" ")

【运行测试

(十一)、【Python0009】查找鞍点

题目描述】

对于给定5X5的整数矩阵,设计算法查找出所有的鞍点的信息(包括鞍点的值和行、列坐标,坐标从1开始)。

提示:鞍点的特点:列上最小,行上最大。

【源代码程序】

def find_saddle_points(matrix):

    saddle_points = []

    for i in range(5):

        for j in range(5):

            # 检查是否为鞍点

            if matrix[i][j] == max(matrix[i]) and matrix[i][j] == min(matrix[row][j] for row in range(5)):

                saddle_points.append([i+1, j+1, matrix[i][j]])  # 添加鞍点的行坐标、列坐标和值到列表中

    return saddle_points

 

# 读取输入矩阵

matrix = []

for _ in range(5):

    row = list(map(int, input().split()))

    matrix.append(row)

 

# 查找鞍点

result = find_saddle_points(matrix)

 

# 格式化输出结果

output = "[" + "][".join([f"{point[0]},{point[1]},{point[2]}" for point in result]) + "]"

print(output)

【运行测试

 >

 

(十二)、【Python0010】正整数的因子展开式

【题目描述】

编写程序,输出一个给定正整数x(x>1)的质因子展开式。

【源代码程序】

def prime_factors(n):

    factors = []

    i = 2

    while i * i <= n:

        if n % i:

            i += 1

        else:

            n //= i

            factors.append(str(i))

    if n > 1:

        factors.append(str(n))

    return factors

 

# 读取输入的整数x

x = int(input())

 

# 计算x的质因子

factors = prime_factors(x)

 

# 格式化输出质因子展开式

output = f"{x}=" + "*".join(factors)

print(output)

【运行测试

 

(十三)、【Python0011】牛顿迭代法

【题目描述】

编写程序,使用牛顿迭代法求方程在x附近的一个实根。

【源代码程序】

def f(x, a, b, c, d):

    return a*x**3 + b*x**2 + c*x + d

 

def f_prime(x, a, b, c):

    return 3*a*x**2 + 2*b*x + c

 

def newton_method(a, b, c, d, x0, tolerance=1e-6, max_iterations=1000):

    x = x0

    for _ in range(max_iterations):

        fx = f(x, a, b, c, d)

        if abs(fx) < tolerance:

            return round(x, 2)

        fpx = f_prime(x, a, b, c)

        if fpx == 0:

            break

        x = x - fx / fpx

    return None

 

# 读取输入的方程系数和实数x

a, b, c, d, x0 = map(float, input().split())

 

# 使用牛顿迭代法求解实根

root = newton_method(a, b, c, d, x0)

 

# 输出实根

print(root)

【运行测试

 

实验分析及问题思考

【Python0012】针对Python中的列表、元组、字典、集合、字符串,请以条目形式从各方面对比它们之间的异同。

【答案】

  1. 列表(List):有序的可变序列,可存储任意类型的元素,支持索引访问和修改,提供丰富的操作方法。
  2. 元组(Tuple):有序的不可变序列,可存储任意类型的元素,用于存储不可变的数据集合。
  3. 字典(Dictionary):无序的键值对集合,键必须是不可变类型,值可以是任意类型,提供丰富的操作方法。
  4. 集合(Set):无序且不重复的元素集合,可用于集合运算和去重。
  5. 字符串(String):不可变的字符序列,提供丰富的字符串操作方法和格式化操作

 


Pyhton环境与基础训练

班级: 信2205-1学号:20224074  姓名:王晨宇

实验自评

实验内容

自评结果(在对应格内打ü

不熟练

一般

比较熟练

熟练

Pyhton环境安装与配置

 

 

 

ü

Pyhton扩展库的安装

 

 

 

ü

Python基本控制结构的应用

 

 

 

ü

Python序列的基本应用

 

 

 

ü

Python函数的应用

 

 

 

ü

实验体会

总的来说,学习和实验这些Python的应用,让我更深入地理解了它们的特点和用途,也提升了我对Python编程的熟练度。我会根据实际需求灵活选择合适的数据类型来处理数据,以提高编程效率和代码质量。

 

标签:return,Python,num,str,5.15,input,page
From: https://www.cnblogs.com/wcy1111/p/18232263

相关文章

  • 5.15-随堂练习4
    比较不同团队的绩效评估方法;提出自己团队的绩效评估计划答案:行业基准分析首先,分析同类或相近行业的其他团队是如何进行绩效评估的,例如:技术导向团队:可能侧重于技术创新、系统稳定性、充电效率提升等技术指标。运营团队:关注用户满意度、充电桩使用率、故障响应时间、运维成本......
  • 5.15-随堂练习5
    为何要讲人、绩效、和职业道德?学好专业不就行了么,为何要扯这么多?答案:人、绩效、和职业道德这三个概念虽然看似与专业技能学习相独立,但实际上在职场和个人发展中起着至关重要的作用,原因如下:人(人际关系与团队合作):职场不是孤立工作的场所,而是需要频繁与人交流、合作的环境。良......
  • 5.15-随堂练习1
    如何摆脱[自我/当下]而考虑到[别人/将来],从而主动为群体和将来行动答案:要摆脱只关注自我和当下的局限,转而更多地考虑他人和未来,进而主动为群体和未来采取行动,可以尝试以下几个策略:培养同理心:尝试站在他人的角度思考问题,理解他们的需求、感受和挑战。这不仅能增进你对他人处境......
  • 5.15-随堂练习2
    收集下面几类公司对员工绩效考核的做法:已经上市多年的公司;刚刚上市或准备上市的公司;国有软件企业;民营软件企业;初始的创业公司答案:已经上市多年的公司,这类公司通常拥有较为成熟和体系化的绩效管理体系,它们可能会:实行年度或季度绩效考核,结合公司战略目标,设定清晰的KPIs(关键......
  • 5.15-随堂练习3
    在团队中会不会出现“劣币驱逐良币”或者“不敢犯错误”的现象,团队如何能让所有人都明确驱动和责任答案:在团队管理中,“劣币驱逐良币”现象确实可能出现,尤其是在缺乏有效管理和激励机制的情况下。这种现象指的是在团队内部,表现不佳或态度消极的成员(劣币)不仅没有得到纠正或淘......
  • 5.15基础知识
    1、常见端口21FTP,22ssh,6379redis,23telnet,25smtp,7001weblogic,445,tcp的局域网文件打印和共享服务,139基于smb,135RPC通信,1433SQLserver,1521orcal,443https3389远程桌面,27107mongdb数据库;2、思路信息收集、信息收集、信息收集网站查ip、旁站、子域名(挖掘机layer)端口扫描(telnet......
  • 5.15
    在网上找了一个jetpackcompose的日期时间选择器但是还不知到怎么将里面的时间提取出来```@Preview@ComposablefunDataTimePicker(viewModel:TimeViewModel=viewModel(factory=TimeViewModelProvider.Factory),date:Date=Date()){valitemHeight=5......
  • 5.15
    packagecom.example.yibaifen.Bean;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;publicclassMysql{publicstaticConnection......
  • 5.15
    js事件学习<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>js-常见事件</title><style>table{margin:0pxauto;}</style></head>&l......
  • 5.15
    python实验报告三(一)、设计实现电子算盘,并完成测试【题目描述】给小朋友设计一个电子算盘。要求绘制电子算盘界面,设计并实现打珠算过程(界面参考如下图示)。界面右侧要求以图形绘制的方式绘制自画像,注意不能是图像文件显示的形式。 【源代码程序】fromtkinterimport*def......