首页 飞桨领航团 帖子详情
【AI达人养成营】学习笔记
收藏
快速回复
飞桨领航团 文章学习资料 263 0
【AI达人养成营】学习笔记
收藏
快速回复
飞桨领航团 文章学习资料 263 0

问题1:1. 输入输出学习
输入两个整数,并计算二者的加减乘除的结果

解决:

a = input('请输入第一个整数: ')
b = input('请输入第二个整数: ')

# 分别把 a、b 转换成整数
a=int(a)
b=int(b)
# 计算 a、b 的和、差、积、商,赋值给变量c

c=a+b
# 打印c
print("c = ", c)
c=a-b
print("c = ", c)
c=a*b
print("c = ", c)
c=a//b
print("c = ", c)

 

问题2. 条件判断
输入两个整数,如果两个整数之和小于100,则输出 '小于100',否则输出 '不小于100'

解决:

a = input('请输入第一个整数: ')
b = input('请输入第二个整数: ')

# 分别把 a、b 转换成整数
a=int(a)
b=int(b)

# 计算 a、b 的和,赋值给变量c
c=a+b

# 判断c是否小于100,按要求输出
if c<100:
    print("小于100")
else:
    print("不小于100")

问题3:

.创建一个含有元素1,2,4,8,16,32的列表

尽可能的写多种的方法实现(两种以上该问满分)

2.分别完成以下操作(在原列表基础上)

· 输出第2个元素
· 删除第2个元素
· 更改第2个元素为0

解决:

# 列表统一命名为L
# 方法一:
L = [1,2,4,8,16,32]
print(L[1])
del L[1]
print(L)
L.insert(1, 2)
L[1]=0
print(L)
# 方法二:
L = list ([1,2,4,8,16,32])
print(L[1])
del L[1]
print(L)
L.insert(1, 2)
L[1]=0
print(L)
#方法三
L = [2**x for x in range(6)]
print(L[1])
del L[1]
print(L)
L.insert(1, 2)
L[1]=0
print(L)

问题4:

问题描述

Fibonacci数列的递推公式为:FnF_nFn​ = F(n−1)F_(n−1)F(​n−1) + F(n−2)F_(n−2)F(​n−2) 其中F1F_1F1​=F2F_{2}F2​ = 1

当n比较大时,FnF_nFn​也非常大,现在我们想知道,FnF_nFn​除以10007的余数是多少。

输入格式

输入包含一个整数n。

输出格式

输出一行,包含一个整数,表示Fn除以10007的余数。

解决:

n = int(input())
F = [1, 1]
if n <= 2:
    for ALL in range(n):
        F.append(F[ALL] + F[ALL + 1])
    print(F[n - 1]%10007)
else:
    for ALL in range(n - 2):
        result = (F[0] + F[1]) % 10007 
        F[0], F[1] = F[1], result
    print(result)

问题5:对随机生成并且打乱的arr从小到大依次进行冒泡排序,快速排序,插入排序和希尔排序算法的补全

解决:

# 随机生成
import numpy as np

#请把冒泡排序算法补充完整
def bubbleSort(arr):
  n = len(arr)
  for i in range(n):
   for j in range(0, n-i-1):
    if arr[j] > arr[j+1] :
     arr[j], arr[j+1] = arr[j+1], arr[j]
if __name__ == '__main__':
# 打乱顺序并随机生成
 nums=np.random.permutation(20)
print(nums)
bubbleSort(nums)
print(nums)

# 随机生成
import numpy as np

#请把快速排序算法补充完整
def quickSort(arr):
    if len(arr)>=2:
        data_index=arr[len(arr)//2] 
        low, high=[], []
        arr.remove(data_index)
        for num in arr:
            if num                low.append(num)
            else:
                high.append(num)
        return quickSort(low)+[data_index]+quickSort(high)
    return arr
if __name__ == '__main__':
         nums=np.random.permutation(20)
         nums=nums.tolist() 
         print('随机生成数组:', nums)
         print('快速排序后数组:',quickSort(nums))

# 随机生成
import numpy as np

#请把希尔排序算法补充完整
def shellSort(arr):
  n = len(arr)
  gap = int(n/2)
  
  while gap > 0: 
    for i in range(gap,n):  
     temp = arr[i] 
     j = i 
     while  j >= gap and arr[j-gap] >temp: 
      arr[j] = arr[j-gap] 
      j -= gap 
     arr[j] = temp 
    gap = int(gap/2)    
  return arr
if __name__ == '__main__':
 nums=np.random.permutation(20)
 print('随机生成数组:', nums)
 print('希尔排序后数组:',shellSort(nums))

# 随机生成
import numpy as np

#请把插入排序算法补充完整
def insertionSort(arr):
   for i in range(1, len(arr)): 
        key = arr[i]  
        j = i-1
        while j >=0 and key < arr[j] : 
            arr[j+1] = arr[j] 
            j -= 1
            arr[j+1] = key
   return arr     
if __name__ == '__main__':
    nums=np.random.permutation(20)
    print('随机生成数组:', nums)
    print('插入排序后数组:',insertionSort(nums)) 

问题6:定义Student类,包括name、dob、age、gender和score属性,包括top3方法用来返回学生的最大的3个成绩(可重复)、sanitize方法用来将负的分数变为正的分数,负的分数可能是输入错误。声明stu_list对象组数用于存储所有的学生对象。最后输出所有的学生信息包括姓名、生日、年龄、性别、最高的3个分数。

数据如下:

stu1.txt 孙同学,2020-5-21,20,'男',77,56,77,76,92,58,-91,84,69,-91
stu2.txt 赵同学,2020-11-3,24,'女',65,68,72,95,-81,71,86,91,57,91
stu3.txt 王同学,2021-8-7,25,'男',87,78,90,-76,88,47,100,65,69,100
stu4.txt 李同学,2021-8-10,29,'男',92,54,85,71,-91,68,77,68,95,95

 

解决:

# 请在此处完成代码
class Student(object):
   
   @staticmethod
   def sanitize(score):
      return abs(int(score))

    def get_info(self,txt_path):
      with open(txt_path) as fr:
         data_info = fr.readline()
         name,dob,age,gender=data_info.split(',')[:4]
         scores=data_info.split(',')[4:]
         scores=[self.sanitize(s) for s in scores]
         self.name=name
         self.dob=dob
         self.age=age
         self.gender=gender
         self.scores=scores

   def get_top3(self):
      return sorted(self.scores,reverse=True)[:3]

   def __str__(self):
      return f'姓名:{self.name},生日:{self.dob},年龄:{self.age},性别:{self.gender},最好的三次成绩:{self.get_top3()}'
     

import os
txt_root='work'
txt_files=['stu1.txt','stu2.txt','stu3.txt','stu4.txt']

stu_list=[]
for txt_file in txt_files:
   txt_file_path=os.path.join(txt_root,txt_file)
   print(os.path.join(txt_root,txt_file))
   new_stu=Student()
   new_stu.get_info(txt_file_path)
   stu_list.append(new_stu)

for stu in stu_list:
   print(stu)

0
收藏
回复
在@后输入用户全名并按空格结束,可艾特全站任一用户