编写程序以检查用户输入的密码的有效性。
以下是检查密码的标准:
1. [a-z]之间至少有1个字母
2. [0-9]之间至少有1个数字
1. [A-Z]之间至少有一个字母
3. [$#@]中至少有1个字符
4.最短交易密码长度:6
5.交易密码的最大长度:12
您的程序应接受一系列逗号分隔的密码,并将根据上述标准进行检查。将打印符合条件的密码,每个密码用逗号分隔。
例:如果以下密码作为程序的输入:
ABd1234@1,a F1#,2w3E*,2We3345
然后,程序的输出应该是:
ABd1234@1
def checkpass():
print('输入密码:')
str = input()
A = str.split(',')
for i in range(len(A)):
xxzm=0
sz=0
dxzm=0
tszf=0
if len(A[i]) >= 6 and len(A[i]) <= 12:
for j in range(len(A[i])):
if A[i][j] in ['$','#','@' ]:
tszf = tszf+1
if A[i][j] in ['0','1','2','3','4','5','6','7','8','9']:
sz = sz +1
if A[i][j]>='a' and A[i][j]<='z':
xxzm = xxzm + 1
if A[i][j] >= 'A' and A[i][j] <= 'Z':
dxzm = dxzm + 1
if tszf and sz and xxzm and dxzm :
print(A[i])
# checkpass()
您需要编写一个程序,按升序对(名称,年龄,高度)元组进行排序,其中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’)]
def sxpx():
from operator import itemgetter
l = []
print("请输入:")
while True:
s = input()
if not s:
break
# print(s)
l.append(tuple(s.split(",")))
# print(l)
print(sorted(l, key=itemgetter(0, 1, 2)))
# sxpx()
# A={1,3,4,5,2}
# print(A,type(A))
# A=[1,3,4,5,2]
# print(list(set(A)))
# print(type(list(set(A))))
使用生成器定义一个类,该生成器可以在给定范围0和n之间迭代可被7整除的数字。
# def scq(n):
# for i in range(n+1):
# if i%7==0:
# print(i)
# scq(100)
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)
机器人从原点(0,0)开始在平面中移动。 机器人可以通过给定的步骤向上,向下,向左和向右移动。 机器人运动的痕迹如下所示:
UP 5
DOWN 3
LETF 3
RIGHT 2
方向之后的数字是步长。 请编写一个程序来计算一系列运动之后当前位置和原点的距离。如果距离是浮点数,则只打印最接近的整数。
例:如果给出以下元组作为程序的输入:
UP 5
DOWN 3
LETF 3
RIGHT 2
然后,程序的输出应该是:2
提示:如果输入数据被提供给问题,则应该假定它是控制台输入。
def jqr():
import math
A=[]
print('输入:')
while True:
s= input()
if not s:
break
A.append(s.split(' ',-1))
# print(A, A[0][0], A[0][1])
y =0
x=0
for i in range(len(A)):
if A[i][0] == 'UP':
y = y+int(A[i][1])
elif A[i][0] == 'DOWN':
y = y - int(A[i][1])
elif A[i][0] == 'LEFT':
x= x- int(A[i][1])
elif A[i][0] == 'RIGHT':
x = x + int(A[i][1])
d=math.sqrt(x**2+y**2)
print(int(d))
# jqr()
题:编写一个程序来计算输入中单词的频率。 按字母顺序对键进行排序后输出。
假设为程序提供了以下输入:
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
提示:如果输入数据被提供给问题,则应该假定它是控制台输入。
def zmpx():
print('请输入:')
str = {}
A = input()
for x in A.split(' ',-1):
str[x] =str.get(x,0)+1
# print(str)
# print(str.keys())
B =sorted(str.keys())
# print(B)
# print(str.values)
for keys in B:
print(keys,':',str[keys])
# A={'s':'ssa','sda':'da'}
# print(A['s'])
# print(A['ssa'])
# zmpx()
定义数列 fn+2 = fn+1 + fn,数列中任何一个元素都是正整数。从定义可以看出,不同的f1、f2会产生不同的数列。
假设给定一个数字x(2 <= x <= 2**32),给出这个数字出现在位置i(i >= 3, 数列下标从1开始)的数列个数。
输入描述:
数字x
输出描述:
每行为两个数字,空格分隔,第一个数字为x在数列中的位置i,第二个数字为符合条件的数列个数,即f1、f2的组合种数。若存在多行,则按照i由小到大的顺序输出
输入例子1:
3
输出例子1:
3 2
4 1
例子说明1:
以下数列包含3,分别为
1 1 2 3 5 …
1 2 3 5 8 …
2 1 3 4 7 …
其中3出现在数列第三位的数列有两个,出现在第四位的数列有一个,因此输出为:
3 2
4 1
######### 单个数列求位置:
# def dsl(f1,f2):
#
# def sl(n):
# if n == 1:
# return f1 #random
# elif n == 2:
# return f2 #random
# else:
# return sl(n-2) + sl(n-1)
# B=[]
# for i in range(1,15):
# B.append(sl(i))
# # print('%s'%B)
# return B
# print('请输入f1:')
# f1 =int(input())
# print('请输入f2:')
# f2 =int(input())
# jz = dsl(f1,f2)
# print('初值 f1,f2 的数列为%s'%jz)
# print('请输入查询数字:')
# A = input()
# for i in range(2, len(jz)):
# if jz[i] == int(A):
# print('查询数字的位置在第 %d 位(以1为索引初值)'%(i+1))
# break
# if int(A) not in jz:
# print('数列不存在该查询数字')
def mmm():
def dsl(f1, f2):
def sl(n):
if n == 1:
return f1 # random
elif n == 2:
return f2 # random
else:
return sl(n - 2) + sl(n - 1)
B = []
k = 1
while sl(k) <= (999):
B.append(sl(k))
k += 1
# print('%s'%B)
return B
C = []
for m in range(1, 30):
for n in range(1, 30):
f1 = m
f2 = n
C.append(dsl(f1, f2))
# print(C)
# print('请输入查询数字:')
A = input()
D = []
m = 0
for i in range(0, len(C)):
for j in range(2, len(C[i])):
if C[i][j] == int(A):
# print(C[i])
# print('查询数字的位置在第 %d 位(以1为索引初值)'%(j+1))
D.append(j + 1)
break
E = sorted(D)
F = set(E)
for each in F:
print(each, E.count(each))
# mmm()
给你一个包含n个数字的数组。你可以对这个数组执行任意次以下交换操作:
对于数组中的两个下标i,j(1<=i,j<=n),如果为ai+aj奇数,就可以交换a_i和a_j。
现在允许你使用操作次数不限,小易希望你能求出在所有能通过若干次操作可以得到的数组中,字典序最小的一个是什么。
输入描述:
第一行一个整数n;
第二行n个整数a_1,a_2,…,a_n,表示数组,每两个数字之间用一个空格分隔。
输入保证。
输出描述:
n个整数,每两个整数之间用一个空格分隔,表示得到的字典序最小的数组。
输入例子1:
4
7 3 5 1
输出例子1:
7 3 5 1
输入例子2:
10
53941 38641 31525 75864 29026 12199 83522 58200 64784 80987
输出例子2:
12199 29026 31525 38641 53941 58200 64784 75864 80987 83522
def px():
A = int(input())
B=(input())
C=map(int,B.split(' ',-1))
# print(C)
C=list(C)
# print(C)
# a[i]不全为偶数或全为奇数,即可交换
os=0
js=0
for each in C:
if each %2 == 0:
os=os+1
if each % 2 == 1:
js=js+1
if os !=A and js !=A:
C=xz(C)
# 冒泡排序
# for i in range(A-1):
# for j in range (0,A-i-1):
# if int(C[j])>int(C[j+1]):
# C[j],C[j+1]=int(C[j+1]), int(C[j])
for each in C:
print(each,end=' ')
# def cr(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
def xz(A): #选择排序
for i in range(len(A)-1):
for j in range(len(A)-i):
if A[j] == max(A[:(len(A)-i)]):
A[len(A)-1-i], A[j] = A[j], A[len(A)-1-i]
return(A)
px()
版权声明:本文为Fighting_y原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。