Python基础Day5HW

本文包含多个Python编程练习题,涉及矩阵生成、数字翻转、连续数字检测、回文素数查找及无进位加法等实用功能实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import ast

n, m = ast.literal_eval(input())

# 现在程序中有两个变量 n, m,输出全为1

def Mat(n,m):

    mat = ""#字符串

    for row in range (n):

        for col in range(m):

            mat +="1 "

        mat +="\n"

    return mat

print(Mat(n,m))





import ast

import math

n = ast.literal_eval(input())

# 现在程序中有一个变量n,尝试翻转它并输出

def number(n):###翻转后的位数

    for  i in range(2,n_len+1):

        if n%((10)**(i-1))==0:

            l1=n_len-1

        else: l1=n_len

    return l1



def rever(n):#翻转函数  

    m=0

    l1=number(n)

    for i in range(l1):

        m+=(10**i)*(math.floor(n/(10**(n_len-i-1)))-10*math.floor(n/(10**(n_len-i))))

    return m



if n==0:

    n_len=1

    print(0)

else:

    n_len =int(math.log10(n))+1

    print(rever(n))






import ast

import math

n = int(ast.literal_eval(input()))

# 现在程序中有一个变量n,判断这个数中是否存在两个相同的连续数字

def length(n):####计算数字的长度

    if n==0:

        n_len=1

    else:

        n_len =int(math.log10(abs(n)))+1

    return n_len



def hasConsecutiveDigits(n):##判断是否存在连续

    result=False

    n_len=length(n)

    if n==0 or n_len==1:

        return False

    else:

        for i in range(n_len-1):

            x1 = n // (10 ** i) % 10  # 获取从右数第 i 位的数字

            x2 = n // (10 ** (i + 1)) % 10  # 获取从右数第 i+1 位的数字

            if x1==x2:

                result=True

                break

        return result

   

print(hasConsecutiveDigits(n))







import ast

import math

n = ast.literal_eval(input())

#输入一个整型数n, 编写程序,来返回第n个回文素数的值

#前十个回文素数如下:2, 3, 5, 7, 11, 101, 131, 151, 181, 191

def fasterIsPrime(n):###判断是否为质数

    if n < 2:

        return False

    if n == 2:

        return True

    if n % 2 == 0:

        return False

    maxFactor = round(n**0.5)

    for factor in range(3, maxFactor+1, 2):

        if n % factor == 0:

            return False

    return True



def issymmetry(n):###判断是否为对称数

    if n == 0:

        n_len = 1

        result = True

    else:

        n_len = int(math.log10(n)) + 1

        result = True  # 初始化 result 为 True

        for i in range(n_len // 2):

            x1 = n // (10 ** i) % 10  # 获取从右数第 i 位的数字

            x2 = n // (10 ** (n_len - i - 1)) % 10  # 获取从右数第 n_len - i - 1 位的数字

            if x1 != x2:  # 如果 x1 != x2,将 result 设置为 False 并跳出循环

                result = False

                break

    return result



def nthPalindromicPrime(n):

    found = 0

    guess = 0

    while found <= n:

        guess += 1

        if fasterIsPrime(guess) and issymmetry(guess):

            found += 1

    return guess



print(nthPalindromicPrime(n))





import ast

import math

x1, x2 = ast.literal_eval(input())

# 现在程序中有两个变量x1, x2,输出每一位相加结果的个数作为“和”的结果

#35+27=52  785+376=51

def length(n):####计算数字的长度

    if n==0:

        n_len=1

    else:

        n_len =int(math.log10(abs(n)))+1

    return n_len



def carrylessAdd(x1,x2):

    add=0

    x1_len=length(x1)

    x2_len=length(x2)

    x_len=max(x1_len,x2_len)

    for i in range(x_len):

         x1i=0

         x2i=0

         x1i = x1 // (10 ** i) % 10  # 获取x1从右数第 i 位的数字

         x2i = x2 // (10 ** i) % 10  # 获取x2从右数第 i 位的数字

         xi=(x1i+x2i)%10             # 获取x 从右数第 i 位的数字

         add+=xi*((10)**i)

    return add

print(carrylessAdd(x1,x2))

### 李宏毅 2021 机器学习 Homework 1 的资料 李宏毅教授的《机器学习》课程在全球范围内广受欢迎,其配套的作业也成为了许多学生和从业者的学习资源。Homework 1 主要围绕线性回归模型展开,涉及数据预处理、特征工程以及模型训练等内容。 #### 数据集介绍 在 Homework 1 中使用的数据集主要来源于空气质量监测数据[^1]。该数据集中包含了多个传感器采集到的不同时间段内的空气污染物浓度以及其他气象因素的信息。通过这些数据,目标是预测特定时间点上的 PM2.5 浓度。 以下是数据加载与初步清理的部分代码示例: ```python import sys import numpy as np import pandas as pd # 加载 CSV 文件并跳过无关列 data = pd.read_csv('hwdata/hw1/train.csv', encoding='big5') data = data.iloc[:, 3:] # 前三列为无意义字段,去除掉 data[data == 'NR'] = 0 # 将缺失值替换为零 raw_data = data.to_numpy() # 转换为 NumPy 数组以便后续操作 ``` 这段代码展示了如何从原始文件中读取数据,并将其转换成适合进一步分析的形式[^2]。 #### 特征提取过程 为了构建有效的输入向量用于训练模型,在完成基本的数据导入之后还需要执行一系列步骤来提取有用的特性。下面是一段关于按月份组织每日采样片段的例子: ```python month_data = {} for month in range(12): sample = np.empty([18, 480]) for day in range(20): sample[:, 24*day : 24*(day+1)] = \ raw_data[18 * (20*month + day) : 18 * (20*month + day + 1), :] month_data[month] = sample ``` 此脚本按照每个月份分别存储每天连续二十四小时的各项指标测量结果[^2]。 #### 进一步优化建议 除了基础的任务实现外,还可以尝试多种方法改进性能,比如调整批量大小(batch size),改变激活函数类型等等。例如增大批次尺寸至更高数值如 `128` 或者甚至更大可以加速收敛速度;而选用 ReLU 替代 sigmoid 则有助于缓解梯度消失现象的发生概率[^3]。 --- ### 总结 综上所述,针对李宏毅老师的 Machine Learning Course - Homework 1 ,我们不仅了解到了具体的编程实践细节还包括了一些可能提升效果的技术手段探讨。希望以上信息能够帮助您更好地理解这份功课的要求及其解决方案思路!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值