print(','.join([str(i) for i in range(2000, 3201) if not i%7 and i % 5]))
示例 输入:8,输出:40320
def fact(x):
return x * fact(x - 1) if x else 1
print(fact(int(input())))
示例 输入:4,输出:{1:1、2:4、3:9、4:16 }
n = int(input())
d = {}
for i in range(1, n + 1):
d[i] = i * i
print(d)
# 字典推导式
print({i: i * i for i in range(1, int(input()) + 1)})
示例 输入:34,67,55,输出:[‘34’,‘67’,‘55’](‘34’,‘67’,‘55’)
l = input().split(',')
print(l,tuple(l))
class InputOutString:
def getString(self):
self.s = input()
def printString(self):
print(self.s.upper())
strObj = InputOutString()
strObj.getString()
strObj.printString()
示例 输入:100,150,180 输出:18,22,24
c, h = 50, 30
print(','.join([str(int((2 * c * float(x) / h)**0.5)) for x in input().split(',')]))
示例 输入:3,5,输出:[[0,0,0,0,0],[0,1,2,3,4],[ 0,2,4,6,8]]
x, y = input().split(',')
print([[i * j for i in range(int(y))] for j in range(int(x))])
示例 输入:Without,bag,hello,world ,输出:bag,hello,Without,world
print(','.join(sorted(input().split(','), key=str.lower)))
示例 输入:Hello world Practice,输出:HELLO WORLD PRACTICE
lines = []
while s := input(): # := (>= 3.8)
lines.append(s.upper())
for sentence in lines:
print(sentence)
示例 输入:hello world and practice makes perfect again hello world,输出:again and hello makes perfect practice world
print(' '.join(sorted(set(input().split()))))
示例 输入:0100,0011,1010,1001 输出:1010
print(','.join([x for x in input().split(',') if not int(x,2)%5]))
value = []
for i in range(1000,3001):
for j in str(i):
if int(j)%2:
break
else:
value.append(str(i))
print(','.join(value))
# 方法二
print(','.join([str(i) for i in range(1000,3001) if not (i//1000%2 or i//100%10%2 or i//10%100%2 or i%10%2)]))
示例 输入:hello world!123 ,输出:字母 10 数字 3
s = input()
n = c = 0
for i in s:
if i.isdigit(): n += 1
if i.isalpha(): c += 1
print(f"字母 {c} 数字 {n}")
示例 输入:Hello world!,输出:UPPER CASE 1 LOWER CASE 9
s = input()
u = l = 0
for i in s:
if i.isupper(): u += 1
if i.islower(): l += 1
print(f"UPPER CASE {u} LOWER CASE {l}")
示例 输入:9 ,输出:11106
a = input()
print(int(a)+int(a+a)+int(a+a+a)+int(a+a+a+a))
示例 输入:1,2,3,4,5 ,输出:1,4,27,16,125
print(','.join([str(x**3) if x%2 else str(x**2) for x in map(int,input().split(','))]))
示例 输入:D 300 D 300 W 200 D 100 然后,输出应为:500
netAmount = 0
while values:=input().split():
for i in range(0,len(values),2):
operate = values[i]
data = int(values[i+1])
if operate == 'D':
netAmount += data
else:
operate == 'W'
netAmount -= data
print(netAmount)
密码的标准:
必须包含大小写字母、数字和[$#@] 中的至少1个字符,
密码最小长度:6
密码最大长度:12
您的程序应接受逗号分隔的密码序列,将符合条件的密码将被打印,每个密码之间用逗号分隔。示例 输入:ABd1234 @ 1,a F1#,2w3E *,2We3345 输出:ABd1234 @ 1
import re
secrets = input().split(',')
pattern = re.compile('^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[$#@]).{6,12}$')
print(','.join([psw for psw in secrets if pattern.match(psw)]))
# 也可以
def checkpass():
sec = []
secrets = input().split(',')
for pw in secrets:
d = c = u = f = False
if 5<len(pw)<13:
for c in pw:
if c in ['$','#','@' ]: f = True
elif c.isdigit(): d = True
elif c.islower(): c = True
elif c.isupper(): u = True
if f and d and c and u:sec.append(pw)
return sec
print(','.join(checkpass()))
示例 输入:
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’)]
from operator import itemgetter
l = []
while s := input():
l.append(tuple(s.split(',')))
print(sorted(l,key=itemgetter(0,1,2)))
# 也可以
print(sorted(l,key=lambda x: x[2]))
print(sorted(l,key=lambda x: x[1]))
print(sorted(l,key=lambda x: x[0]))
operator 模块提供的 itemgetter 函数用于获取对象的指定维的数据,参数为一些序号。
a = [1,2,3]
>>> b=operator.itemgetter(1) //定义函数b,获取对象的第1个域的值
>>> b(a)
2
>>> b=operator.itemgetter(1,0) //定义函数b,获取对象的第1个域和第0个的值
>>> b(a)
(2, 1)
注意,operator.itemgetter 函数获取的不是值,而是定义了一个函数,通过该函数作用到对象上才能获取值。
sorted 函数用来排序,sorted(iterable[, cmp[, key[, reverse]]])
其中key的参数为一个函数或者lambda函数。所以 itemgetter 可以用来当 key 的参数。
a = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
sorted(students, key=operator.itemgetter(1,2)) # 根据第二个域和第三个域进行排序
def num(n):
for i in range(n+1):
if not i%7:yield i
for i in num(100):
print(i,end=' ')
示例 输入:UP 5 DOWN 3 LEFT 3 RIGHT 2 输出:2
import math
pos = [0,0]
while s := input():
move = s.split()
direction = move[0]
step = int(move[1])
if direction == 'UP':
pos[0] += step
elif direction == 'DOWN':
pos[0] -= step
elif direction == 'LEFT':
pos[1] -= step
elif direction == 'RIGHT':
pos[1] += step
print(int(round(math.sqrt(pos[1]**2+pos[0]**2))))
示例 输入: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
d = {}
words = input().split()
# words_set = set(words)
# for w in words_set:
# d[w] = words.count(w)
for w in words:
# if d.get(w,-1)==-1:
if w not in d:
d[w] = 1
else:
d[w] += 1
keys = sorted(d)
d = {key:d[key] for key in keys}
for w in d:
print(f'{w}:{d[w]}',end=' ')
print()
def square(num):
'''
返回输入数字的平方值。
输入的数字必须是整数。
返回数字** 2 '''
return num**2
print(square.__doc__)
class Person:
name = 'Person' #定义类参数 name
def __init__(self,name=None):
self.name = name # name是实例参数
geoffrey = Person('Geoffrey')
print(f'{Person.name} 名称为 {geoffrey.name}')
nico = Person()
nico.name = '尼克'
print(f'{Person.name} 名称为 {nico.name}')
l = [1,2,3,4,5,6,7,8,9,10]
print([x*x for x in l if not x%2])
print(list(map(lambda x:x*x,filter(lambda x:x%2==0,l))))
提示:使用@staticmethod装饰器定义类的静态方法。
解决方案
类 American(object):
@ staticmethod
def printNationality():
print(“ America”)
anAmerican = American()
anAmerican。printNationality()
美国。printNationality()
提示:
使用类Subclass(ParentClass)定义一个子类。
解决方案:
American类(对象):
通过
NewYorker类(美国):
通过
anAmerican = American()
aNewYorker = NewYorker()
打印(anAmerican)
打印(aNewYorker)
提示:
使用def methodName(self)定义一个方法。
解决方案:
类 Circle(object):
def init(self,r):
self。半径 = r
def 区域(自我):
返回 自我。半径** 2 * 3.14
aCircle = Circle(2)
打印 aCircle。区域(个)
提示:
使用def methodName(self)定义一个方法。
解决方案:
class Rectangle(对象):
def __init __(self,l,w):
self。长度 = l
self。宽度 = w
def 区域(自我):
返回 自我。长度*自我。宽度
aRectangle位于 = 矩形(2,10)
打印(aRectangle位于。区域())
提示:
要覆盖超类中的方法,我们可以在超类中定义一个具有相同名称的方法。
解决方案:
类 Shape(object):
def init(self):
pass
def 区域(self):
返回 0
正方形(形状)类:
def init(self,l):
形状。init(自我)
自我。长度 = l
def 区域(自我):
返回 自我。长度*自我。长度
aSquare = 广场(3)
打印(aSquare。区域())
提示:
使用raise()引发异常。
解决方案:
引发 RuntimeError(‘出了点问题’)
提示:
使用try / except捕获异常。
解决方案:
DEF 抛出():
返回 5 / 0
试试:
throws()
除 ZeroDivisionError外:
print(“除以零!”)
除 Exception外,err:
print(‘捕获到一个异常’)
最后:
print(‘在finally块中进行清理’)
提示:
要定义自定义异常,我们需要定义一个从Exception继承的类。
解决方案:
class MyError(Exception):
“”“我自己的异常类
属性:
msg-错误
“”的说明
def __init__(self,msg):
self。味精 = 味精
错误 = MyError(“出了点问题”)
示例:如果将以下电子邮件地址作为该程序的输入:
然后,程序的输出应为:
约翰
如果将输入数据提供给问题,则应假定它是控制台输入。
提示:
使用\ w匹配字母。
解决方案:
import re
emailAddress = raw_input()
pat2 = “(\ w +)@((\ w + \。)+(com))”
r2 = re。匹配(PAT2,EMAILADDRESS)
打印(R2。组(1))
示例:如果将以下电子邮件地址作为该程序的输入:
然后,程序的输出应为:
谷歌
如果将输入数据提供给问题,则应假定它是控制台输入。
提示:
使用\ w匹配字母。
解决方案:
import re
emailAddress = raw_input()
pat2 = “(\ w +)@(\ w +)\。(com)”
r2 = re。匹配(PAT2,EMAILADDRESS)
打印(R2。组(2))
示例:如果给出以下单词作为程序输入:
2只猫和3只狗。
然后,程序的输出应为:
[‘2’,‘3’]
如果将输入数据提供给问题,则应假定它是控制台输入。
提示:
使用re.findall()使用正则表达式查找所有子字符串。
解决方案:
进口 重新
小号 = 的raw_input()
打印(重。的findall(“\ d +” ,š))
提示:
使用u’strings’格式定义unicode字符串。
解决方案:
unicodeString = u“你好,世界!”
打印(unicodeString)
提示:
使用unicode()函数进行转换。
解决方案:
s = 输入()
u = Unicode(s,“ utf-8”)
打印(u)
提示:
解决方案:
#--编码:utf-8--
#----------------------------------------#
示例:如果将以下n作为程序的输入:
5
然后,程序的输出应为:
3.55
如果将输入数据提供给问题,则应假定它是控制台输入。
提示:使用float()将整数转换为float
解决方案:
n = int(input())
sum = 0.0
for i in range(1,n + 1):
sum + = float(float(i)/(i + 1))
print(sum)
当n> 0且f(0)= 1时f(n)= f(n-1)+100
通过控制台输入给定的n(n> 0)。
示例:如果将以下n作为程序的输入:
5
然后,程序的输出应为:
500
如果将输入数据提供给问题,则应假定它是控制台输入。
提示:我们可以在Python中定义递归函数。
解决方案:
def f(n):
如果 n == 0:
返回 0
else:
返回 f(n - 1)+ 100
n = int(输入())
打印(f(n))
如果n = 0则f(n)= 0如果n = 1则f(n)= 1如果n> 1则f(n-1)+ f(n-2)
请编写一个程序,以控制台输入给定的n个输入来计算f(n)的值。
示例:如果将以下n作为程序的输入:
7
然后,程序的输出应为:
13
如果将输入数据提供给问题,则应假定它是控制台输入。
提示:我们可以在Python中定义递归函数。
解决方案:
def f(n):
如果 n == 0:返回 0
elif n == 1:返回 1
else:返回 f(n - 1)+ f(n - 2)
n = int(输入())
打印(f(n))
如果n = 0则f(n)= 0如果n = 1则f(n)= 1如果n> 1则f(n-1)+ f(n-2)
请编写一个使用列表推导的程序,以控制台输入给定的n输入以逗号分隔的形式打印斐波那契数列。
示例:如果将以下n作为程序的输入:
7
然后,程序的输出应为:
0,1,1,2,3,5,8,13
提示:我们可以在Python中定义递归函数。使用列表推导从现有列表生成列表。使用string.join()连接字符串列表。
如果将输入数据提供给问题,则应假定它是控制台输入。
解决方案:
def f(n):
如果 n == 0:返回 0
elif n == 1:返回 1
else:返回 f(n - 1)+ f(n - 2)
n = int(输入())
值 = [ str(f(x())对于 x 在 范围(0,n + 1)中]]
print(“,”。join(值))
示例:如果将以下n作为程序的输入:
10
然后,程序的输出应为:
0,2,4,6,8,10
提示:使用yield在生成器中产生下一个值。
如果将输入数据提供给问题,则应假定它是控制台输入。
解决方案:
def EvenGenerator(n):
i = 0
而 i <= n:
如果 i %2 == 0:
产生 i
i + = 1
Ñ = INT(输入())
的值 = []
为 我 在 EvenGenerator(Ñ):
值。追加(str(i))
打印(“,”。联接(值))
示例:如果将以下n作为程序的输入:
100
然后,程序的输出应为:
0,35,70
提示:使用yield在生成器中产生下一个值。
如果将输入数据提供给问题,则应假定它是控制台输入。
解决方案:
def NumGenerator(n):
对于 i 在 范围(n + 1)中:
如果 i %5 == 0 和 i %7 == 0:
产生 i
Ñ = INT(输入())
的值 = []
为 我 在 NumGenerator(Ñ):
值。追加(str(i))
打印(“,”。联接(值))
提示:使用“声明表达式”进行断言。
解决方案:
李 = [ 2,4,6,8 ]
为 我 在 李:
断言 我%2 == 0
示例:如果将以下字符串作为程序的输入给出:
35 + 3
然后,程序的输出应为:
38
提示:使用eval()评估表达式。
解决方案:
表达式 = raw_input()
打印(eval(表达式))
提示:使用if / elif处理条件。
解决方案:
进口 数学
DEF bin_search(里,元素):
底部 = 0
顶部 = len个(李)- 1个
索引 = - 1
,而 顶> =底部 和 索引== - 1:
中期 = INT(数学。地板((顶部+底部)/ 2.0))
if li [ mid] ==元件:
索引 = 中间
的elif 利[中间] >元素:
顶 = 中期- 1
否则:
底部 = 中间+ 1
回报 指数
李= [ 2,5,7,9,11,17,222 ]
打印(bin_search(李,11))
打印(bin_search(李,12))
提示:使用if / elif处理条件。
解决方案:
进口 数学
DEF bin_search(里,元素):
底部 = 0
顶部 = len个(李)- 1个
索引 = - 1
,而 顶> =底部 和 索引== - 1:
中期 = INT(数学。地板((顶部+底部)/ 2.0))
if li [ mid] ==元件:
索引 = 中间
的elif 利[中间] >元素:
顶 = 中期- 1
否则:
底部 = 中间+ 1
回报 指数
李= [ 2,5,7,9,11,17,222 ]
打印(bin_search(李,11))
打印(bin_search(李,12))
提示:使用random.random()在[0,1]中生成随机浮点数。
解决方案:
进口 随机
打印(随机,随机()* 100)
提示:使用random.random()在[0,1]中生成随机浮点数。
解决方案:
进口 随机
打印(随机,随机()* 100 - 5)
提示:使用random.choice()对列表中的随机元素进行操作。
解决方案:
导入 随机
打印(随机。选择([我 为 我 在 范围(11),如果 我%2 == 0))
提示:使用random.choice()对列表中的随机元素进行操作。
解决方案:
导入 随机
打印(随机。选择([如果i %5 == 0和i %7 == 0 [[ i for i 在 范围(201)中)]]
提示:使用random.sample()生成随机值列表。
解决方案:
导入 随机
打印(随机。样本(范围(100),5))
提示:使用random.sample()生成随机值列表。
解决方案:
导入 随机
打印(随机。样品([我 为 我 在 范围(100,201),如果 我%2 == 0 ],5))
提示:使用random.sample()生成随机值列表。
解决方案:
导入 随机
打印(随机。样品([我 为 我 在 范围(1,1001),如果 我%5 == 0 和 我%7 == 0 ],5))
提示:使用random.randrange()到给定范围内的随机整数。
解决方案:
导入 随机
打印(随机。randrange(7,16))
提示:使用zlib.compress()和zlib.decompress()压缩和解压缩字符串。
解决方案:
import zlib
s = b’hello world!hello world!hello world!hello world!’
t = zlib。压缩(小号)
打印(吨)
打印(zlib的。解压缩(吨))
提示:使用timeit()函数来测量运行时间。
解决方案:
从 timeit 进口 定时器
吨 = 定时器(“对于i在范围(100):1 + 1” )
的打印(吨。timeit())
提示:使用shuffle()函数可对列表进行随机播放。
解决方案:
从 随机 导入 洗牌
利 = [ 3,6,7,8 ]
洗牌(李)
打印(李)
提示:使用shuffle()函数可对列表进行随机播放。
解决方案:
从 随机 导入 洗牌
利 = [ 3,6,7,8 ]
洗牌(李)
打印(李)
提示:使用list [index]表示法从列表中获取元素。
解决方案:
科目= [ “我”,“你” ]
动词= [ “玩”,“爱” ]
对象= [ “曲棍球”,“足球” ]
为 我 的 范围(len个(学科)):
用于 Ĵ 在 范围(LEN(动词)):
用于 ķ 在 范围(len个(对象)):
句子 = “%s%s%s。” %(主语[ i ],动词[ j ],宾语[ k ])
打印(句子)
提示:使用列表推导从列表中删除一堆元素。
解决方案:
li = [5,6,77,45,22,12,24]
li = [x for x in li if x%2!=0]
print(li)
提示:使用列表推导从列表中删除一堆元素。
解决方案:
li = [12,24,35,70,88,120,155]
li = [x for x in li if x%5!=0 and x%7!=0]
print(li)
提示:使用列表推导从列表中删除一堆元素。使用enumerate()获取(索引,值)元组。
解决方案:
李 = [ 12,24,35,70,88,120,155 ]
里 = [ X 为(我,X)在 枚举(李)如果 我%2 != 0 ]
打印(李)
提示:使用列表推导来创建数组。
解决方案:
array = [[ [0 for col in range(8)] for col in range(5)] for row in range(3)]
print(array)
提示:使用列表推导从列表中删除一堆元素。使用enumerate()获取(索引,值)元组。
解决方案:
李 = [ 12,24,35,70,88,120,155 ]
里 = [ X 为(我,X)在 枚举(李)如果 我 不 在(0,4,5)]
打印(李)
提示:使用列表的remove方法删除一个值。
解决方案:
李 = [ 12,24,35,24,88,120,155 ]
里 = [ X 为 X 在 里 如果 X != 24 ]
打印(李)
提示:使用set()和“&=”进行交集操作。
解决方案:
SET1 =组([ 1,3,6,78,35,55 ])
SET2 =组([ 12,24,35,24,88,120,155 ])
SET1&= SET2
李=列表(SET1)
打印(li)
提示:使用set()可以存储许多没有重复的值。
解决方案:
DEF removeDuplicate(李):
newli = []
看出 = 集()
为 项目 在 李:
如果 项 不是 在 看到:
看到。添加(项目)
newli。追加(项目)
返回 newli
李= [ 12,24,35,24,88,120,155,88,120,155 ]
打印(removeDuplicate(李))
提示:使用Subclass(Parentclass)定义子类。
解决方案:
类 Person(对象):
def getGender(self):
返回 “未知”
类 Male(Person):
def getGender(self):
返回 “ Male”
类 女(Person):
def getGender(self):
返回 “女”
aMale = 男()
aFemale = 女()
打印(aMale。getGender())
打印(aFemale。getGender())
示例:如果将以下字符串作为程序的输入给出:
abcdefgabc
然后,程序的输出应为:
a,2 c,2 b,2 e,1 d,1 g,1 f,1
提示:使用dict来存储键/值对。使用dict.get()方法查找具有默认值的键。
解决方案:
DIC = {}
小号=的raw_input()
为 小号 在 小号:
DIC [小号] = DIC。得到(小号,0)+ 1张
打印(’ \ n '。加入([ '%S,%s’的 %(ķ,v)为 ķ,v 在 DIC。项目()))
示例:如果将以下字符串作为程序的输入给出:
投票给先生
然后,程序的输出应为:
里斯·埃托夫·埃西尔
提示:使用list [::-1]以相反的顺序迭代列表。
解决方案:
s = raw_input()
s = s [:: - 1 ]
打印(s)
示例:如果将以下字符串作为程序的输入给出:
H1e2l3l4o5w6o7r8l9d
然后,程序的输出应为:
你好,世界
提示:使用list [:: 2]通过步骤2迭代列表。
解决方案:
s = raw_input()
s = s [:: 2 ]
打印(s)
提示:使用itertools.permutations()获取列表的排列。
解决方案:
进口 itertools
打印(列表(itertools。置换([ 1,2,3 ])))
提示:使用for循环迭代所有可能的解决方案。
解决方案:
高清 解决(numheads,numlegs):
NS = ‘!无解’
对于 我 在 范围(numheads + 1):
Ĵ = numheads -我
如果 2 *我+ 4 * Ĵ == numlegs:
返回 我,Ĵ
返回 NS,NS
numheads = 35
numlegs = 94个
解决方案= solve(numheads,numlegs)
打印(solutions)