实例一:数学计算
简述:这里有四个数字,分别是: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))