task4

题目描述:

电脑产生一个零到100之间的随机数字,然后让用户来猜,如果用户猜的数字比这个数字大,提示太大,否则提示太小,当用户正好猜中电脑会提示,“恭喜你猜到了这个数是…”。在用户每次猜测之前程序会输出用户是第几次猜测,如果用户输入的根本不是一个数字,程序会告诉用户"输入无效"。

(尝试使用try catch异常处理结构对输入情况进行处理)

获取随机数采用random模块。

import random
secret = random.randint(1, 100) 
count = 0 

while True:
    temp = input("随机数是?") 
    count = count + 1 
    print (count)
    try:
        i = int(temp)
    except Exception as err:
        print("输入无效")
    guess = int(temp)
    if guess > secret:
        print("太大")
    else:
        if guess == secret:
            print("恭喜你猜到了这个数")
            break       
        else:
            print("太小")

列表lst 内容如下

lst = [2, 5, 6, 7, 8, 9, 2, 9, 9]

请写程序完成下列操作:

在列表的末尾增加元素15
在列表的中间位置插入元素20
将列表[2, 5, 6]合并到lst中
移除列表中索引为3的元素
翻转列表里的所有元素
对列表里的元素进行排序,从小到大一次,从大到小一次
lst=[2, 5, 6, 7, 8, 9, 2, 9, 9]
lst.append(15)  #在列表的末尾增加元素15
lst.insert(round(len(lst)/2),20) #在列表的中间位置插入元素20
lst1 = [2, 5, 6]
lst += lst1    #将列表[2, 5, 6]合并到lst中
lst.pop(3)     #移除列表中索引为3的元素
lst.reverse()  #翻转列表里的所有元素
lst.sort()     #从小到大排序
lst.sort(reverse=True)   #从大到小排序

问题描述:

lst = [1, [4, 6], True]

请将列表里所有数字修改成原来的两倍

 lst[0] =lst[0] *2
 lst[1][0] = lst[1][0]*2
 lst[1][1] = lst[1][1]*2
 lst[2] = lst[2] * 2

山脉数组的峰顶索引

如果一个数组k符合下面两个属性,则称之为山脉数组

数组的长度大于等于3

存在 i i i, i i i >0 且 i < len ⁡ ( k ) − 1 i<\operatorname{len}(k)-1 i<len(k)−1, 使得 k [ 0 ] < k [ 1 ] < … < k [ i − 1 ] < k [ j ] > k [ i + 1 ] … > k [ len ⁡ ( k ) − 1 ] \mathrm{k}[0]<\mathrm{k}[1]<\ldots<\mathrm{k}[\mathrm{i}-1]<\mathrm{k}[\mathrm{j}]>\mathrm{k}[\mathrm{i}+1] \ldots>\mathrm{k}[\operatorname{len}(\mathrm{k})-1] k[0]<k[1]<…<k[i−1]<k[j]>k[i+1]…>k[len(k)−1]

这个 i i i就是顶峰索引。

现在,给定一个山脉数组,求顶峰索引。

class Solution:
def peakIndexInMountainArray(self, A) -> int:
for i in range(1,len(A)-1):
if A[i-1]>A[i]<A[i+1]:
return False
break
else:
continue
return True
test = [1, 2, 4, 6, 4, 5]
s = Solution()
print(s.peakIndexInMountainArray(test))
上一篇:线性代数应该这样学7:对偶空间、对偶映射,零化子,矩阵的转置


下一篇:线性代数应该这样学9:上三角矩阵、对角矩阵