self_learning_code(one)

实例一:数学计算
简述:这里有四个数字,分别是:1、2、3、4
提问:能组成多少个互不相同且无重复数字的三位数?各是多少?
Python解题思路分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。(for循环)
代码实现:

list=[]
for i in range(1,5,1):
    for j in range(1,5,1):
        for k in range(1,5,1):
            if i!=j and j!=k and k!=i:
                num = i*100 + j*10 + k*1
                list.append(num)
                len_num = len(list)
print("the number is %d"%(len_num))
                

1:输出1-2+3-4+…+99-100的和

2:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

num = 0
for i in range (1,101):
    if i % 2 == 0:
        num = i + num
    else:
        num = num - i 
print(num)
import math


n = 0

while True:
     n1 = n + 100
     n2 = n1 + 168
     n1_sqrt = int(math.sqrt(n1))
     n2_sqrt = int(math.sqrt(n2))
     if (n1_sqrt*n1_sqrt==n1)and(n2_sqrt*n2_sqrt==n2):
         print(n)
         break
     n = n+1


题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,
又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

sum=1
for i in range(9):
    sum=2*sum+2
print(sum)

题目2:随机生成20个学生的成绩,定义一个函数判断学生的成绩所属等级
(如大于90分为A,大于80分为B,等级可自定义),调用定义的函数,输出这20个学生成绩对应的等级

import numpy as np
#import random
def leval(num):
    if 90<num<=100:
        return('A')
    elif 80<num<=90:
        return('B')
    elif 70<num<=80:
        return('c')
    else:
        return('D')
def main():
   for i in range(20):
       num1 = np.random.randint(0,100)
       
       print("scole is : %d,leval is: %s" % (num1, leval(num1)))
main()

题目1:定义一个函数,可给定一个由2n个整数组成的数组,
函数可把这些整数划分为n对,如(a1, b1), (a2, b2),…, (an,bn),
最后使得min(ai,bi)的总和最大,函数返回综总和最大值

num = [1,5,6,8,22,66,78,87,55,32,46,63,22,66,1,5]
def sum_min(nums):
    nums = sorted(nums)
    n = len(nums)
    sum234 = 0
    a = 0
    while a<n:
        sum234 = sum234+num[a]
        a=a+2
    return sum234
sum234 =  sum_min(num)   
print(sum234)

题目2:创建一个3*5的标准正态分布随机矩阵,并重构矩阵的结构为15*1

import numpy as np

arr1 = np.random.rand(3,5)
print(arr1)
print(arr1.ndim)  # 维数
print(arr1.shape) # 维度大小
print(arr1.dtype) # 数据类型
arr2 = arr1.reshape(15,1)
print(arr2)

题目1:写代码,有如下列表,按照要求实现每一个功能(所有练习题同样适用于元组)
li = ['alex','eric','rain']    
a.计算列表长度并输出
b.列表中追加元素"seven",并输出添加后的列表
c.请在列表的第1个位置插入元素 "Tony",并输出添加后的列表
e.请删除列表中的元素"eric",并输出修改后的列表
f.请删除列表中的第2个元素,并输出删除的元素的值和删除元素后的列表
g.请删除列表中的第3个元素,并输出删除元素后的列表
h.请删除列表中的第2至4个元素,并输出删除元素后的列表
i.请将列表所有的元素反转,并输出反转后的列表
j.请使用for、len、range 输出列表的索引
k.请使用enumrate输出列表元素和序号(序号从 100 开始)

li = ['alex','eric','rain']
for k,v in enumerate(li,100):
    print(k,v)
'''j
for i in range(len(li)):
    print(i)
'''

'''i
li.reverse()
print(li)
'''
'''h
li = ['alex','eric','rain','lina','faf','dfadf']
del li[1:4]
print(li)
'''

'''g
li.pop(2)
print(li)
'''
'''f
print(li.pop(1))
print(li)

'''
'''a
li = ['alex','eric','rain']
print(len(li))
'''
'''b
li.append('seven')
print(li)
'''
'''c
li.insert(0,'Tony')
print(li)
'''
'''e
li.remove('eric')
print(li)
'''

题目2:写代码,有如下列表,请按照功能要求实现每一个功能
li = ["hello",'seven',["mon",["h","kelly"],'all'],123,446]
a.请输出"Kelly"
b.请使用索引找到 'all'元素并将其修改为"ALL"

li = ["hello",'seven',["mon",["h","kelly"],'all'],123,446]

index = li[2].index("all")
li[2][index] = "ALL"
print(li)
'''a
print(li[2][1][1])
'''

tu=("alex",[11,22,{"k1":'v1',"k2":["age","name"],"k3":(11,22,33)},44])
a. 讲述元祖的特性
b. 请问 tu 变量中的第一个元素 "alex" 是否可被修改?
c. 请问 tu 变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 "Seven"
d. 请问 tu 变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 "Seven"

tu=("alex",[11,22,{"k1":'v1',"k2":["age","name"],"k3":(11,22,33)},44])
tu[1][2]["k2"].append("Seven")
print(tu)

冒泡排序法

li =[12,8,5,7,9,4,14]
print(li)

def bubble (list):
    list_len = len(list)
    for i in range(0,list_len):
        for j in range(i+1,list_len):
            if list[i] > list[j]:
                list[i],list[j] = list[j],list[i]
    return list

print(bubble (li)) 

归并排序

li = [215,56,235,5,8,1,6,89,45]

def merge(a,b):
    c=[]
    i=0
    j=0
    while i < len(a) and j<len(b):
        if a[i]<b[j]:
            c.append(a[i])
            i=i+1
        else:
            c.append(b[j])
            j=j+1
    c += a[i:]
    c += b[j:]
    return c

def sorts(lis):
    len_list = len(lis)
    if len_list <= 1:
        return lis
    else:
        m = len_list//2
        a = sorts(lis[:m])
        b = sorts(lis[m:])
        return merge(a,b)

    
print(sorts(li))

猜你喜欢

转载自blog.csdn.net/weixin_43124857/article/details/86028496