我需要它看起来像
https://doorpasscode.kringlecastle.com/checkpass.php?i= (3333)&resourceId=77af125f-213f-4b2b-9e1e-ce156b6a838c
相反,它看起来像
https://doorpasscode.kringlecastle.com/checkpass.php?i= (3, 3, 3, 3)&resourceId=77af125f-213f-4b2b-9e1e-ce156b6a838c
代码:
for i in range(0, 4):
for j in range(0, 4):
for k in range(0, 4):
for l in range(0, 4):
trypass=(i,j,k,l)
#print(i,j,k,l, sep='')
print('https://doorpasscode.kringlecastle.com/checkpass.php?i= {}&resourceId=77af125f-213f-4b2b-9e1e-ce156b6a838c'.format(trypass).strip(','))
答案 0 :(得分:1)
strip
仅从字符串的开头和结尾去除,而从中间不去除字符。tuple
进行字符串化来添加不必要的垃圾。要同时解决这两个问题,请将trypass
转换为字符串,中间不添加任何连接符:
trypass = ''.join(map(str, (i,j,k,l)))
一个旁注:您可以使用itertools.product
缩短很多时间,将四个循环变成一个(无箭头形代码),并避免将range
元素转换为{{1 }}仅一次,无需中间命名变量即可直接生成str
:
trypass
答案 1 :(得分:0)
const
将使用默认的元组格式化规则将元组格式化为字符串。 .format(trypass)
。相反,您应该明确告诉它如何设置字符串格式,例如:
(3, 3, 3, 3)
答案 2 :(得分:0)
您有一个要简化为字符串的元组。
>>> trypass = (3,3,3,3)
>>> ''.join(str(i) for i in trypass)
'3333'
或者,因为您知道确切的4位数字,所以
print('https://doorpasscode.kringlecastle.com/checkpass.php?i={}{}{}{}&resourceId=77af125f-213f-4b2b-9e1e-ce156b6a838c'.format(*trypass))
或者,直接在4位数字上进行迭代。 itertools.product
可以为您生成元组。
import itertools
for trypass in itertools.product("0123", repeat=4):
print('https://doorpasscode.kringlecastle.com/checkpass.php?i={}{}{}{}&resourceId=77af125f-213f-4b2b-9e1e-ce156b6a838c'.format(*trypass))