1、创建一个长度为10的一维全为0的ndarray对象,然后让第5个元素等于1
x = np.zeros(10, dtype=int)
x[5] = 5
print(x)
2、创建一个元素为从10到49的ndarray对象
x = np.arange(10, 50)
print(x)
3、将第2题的所有元素位置反转
x = np.arange(10, 50)
print(x[::-1])
4、使用np.random.random创建一个10*10的ndarray对象,并打印出最大最小元素
x = np.random.random(size=(10, 10))
print(x)
print(x.max())
print(x.min())
5、创建一个10*10的ndarray对象,且矩阵边界全为1,里面全为0,如下图
x = np.ones((10, 10))
x[1:9,1:9] = 0
print(x)
6、创建一个每一行都是从0到4的5*5矩阵
x = np.array([[0,1,2,3,4]]*5)
print(x)
7、创建一个范围在(0,1)之间的长度为12的等差数列
x = np.linspace(0, 1, num=12)
print(x)
8、网站要求用户输入用户名和密码进行注册。编写程序以检查用户输入的密码的有效性。
以下是检查密码的标准:
- [a-z]之间至少有1个字母
- [0-9]之间至少有1个数字
- [A-Z]之间至少有一个字母
- [$#@]中至少有1个字符
4.最短交易密码长度:6
5.交易密码的最大长度:12
您的程序应接受一系列逗号分隔的密码,并将根据上述标准进行检查。将打印符合条件的密码,每个密码用逗号分隔。
例:如果以下密码作为程序的输入:
ABd1234@1,aF1#,2w3E*,2We3345
然后,程序的输出应该是:
ABd1234@1
提示:如果输入数据被提供给问题,则应该假定它是控制台输入。
import re
str1 = 'ABd1234@1,aF1#,2w3E*,2We3345'
strs = str1.split(',')
# print(strs)
rightstring = ''
for s in strs:
flag = False
if 6<=len(s)<=12:
if re.search("[a-z]", s):
if re.search("[0-9]", s):
if re.search("[A-Z]", s):
if re.search("[$#@]", s):
flag = True
if flag:
if rightstring == '':
rightstring += s
else:
rightstring += ',' + s
print(rightstring)
9、您需要编写一个程序,按升序对(名称,年龄,高度)元组进行排序,其中name是字符串,age和height是数字。 元组由控制台输入。 排序标准是:
1:根据名称排序;
2:然后根据年龄排序;
3:然后按分数排序。
优先级是name> age>得分。
如果给出以下元组作为程序的输入:
Tom,19,80
John,20,90
Jony,17,91
Jony,17,93
Json,21,85
然后,程序的输出应该是:
[(‘John’,‘20’,‘90’),(‘Jony’,‘17’,‘91’),(‘Jony’,‘17’,‘93’),(‘Json’,'21 ',‘85’),(‘Tom’,‘19’,‘80’)]
提示:如果输入数据被提供给问题,则应该假定它是控制台输入。我们使用itemgetter来启用多个排序键。
Python中的operator模块中的itemgetter函数的作用是获取对象哪些维的数据,参数是表示维的序号。一般operator.itemgetter()函数可以结合sorted函数一起使用实现sorted的高级作用。
Python中的operator.itemgetter函数
from operator import itemgetter
l = []
print("请输入:")
while True:
s = input()
if not s:
break
l.append(tuple(s.split(",")))
print(sorted(l, key=itemgetter(0,1,2)))
10.使用生成器定义一个类,该生成器可以在给定范围0和n之间迭代可被7整除的数字。
提示:考虑使用yield。
def putNumbers(n):
i = 0
while i<n:
j=i
i=i+1
if j%7==0:
yield j
for i in putNumbers(100):
print (i)
11.编写一个程序来计算输入中单词的频率。 按字母顺序对键进行排序后输出。
假设为程序提供了以下输入:
New to Python or choosing between Python 2 and Python 3? Read Python 2 or Python 3.
然后,输出应该是:
2:2
3.:1
3?:1
New:1
Python:5
Read:1
and:1
between:1
choosing:1
or:2
to:1
提示:如果输入数据被提供给问题,则应该假定它是控制台输入。
st = 'New to Python or choosing between Python 2 and Python 3? Read Python 2 or Python 3.'
s = st.split(' ')
x = sorted(set(s))
for xp in x:
print(xp, ':', s.count(xp))
12、最大数
给定一组非负整数nums,重新排列它们每个数字的顺序(每个数字不可拆分)使之组成一个最 大的整数。
注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。
示例1:
输入: nums = [10.2]
输出: “210”
示例2:
输入: nums = [3,30,34,5,9] .
输出: “9534330”
示例3:
输入: nums= [1]
输出: “1”
示例4:
输入: nums= [10]
输出: “10”
限定: 1 <= nums.length <= 100, 0 <= nums[i] <= 100000000
class Strlt(str):
def __lt__(x, y):
return x + y > y + x
class Solution:
def largestNumber(self, nums):
nums = [str(num) for num in nums]
nums.sort(key=Strlt)
if nums[0] == '0':
return '0'
else:
return ''.join(nums)
t = Solution()
print(t.largestNumber([1, 20, 23, 30]))