从变量中删除空格/逗号以添加到字符串

2024-09-29 21:29:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要它看起来像

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(','))

Tags: 代码inhttpscomforrangesepphp
3条回答

你有一个元组,你想减少到一个字符串。你知道吗

>>> 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))
  1. strip只从字符串的开头和结尾剥离字符,而不从中间剥离字符。你知道吗
  2. 您的问题并不是真正的剥离,而是通过直接将tuple字符串化来添加不必要的垃圾。你知道吗

要解决这两个问题,请先将trypass转换为中间没有连接符的字符串:

trypass = ''.join(map(str, (i,j,k,l)))

旁注:您可以通过itertools.product将这一点缩短很多,从而将四个循环变成一个循环(没有箭头形状的代码),并通过只将range元素转换为str一次,直接生成trypass,而不使用中间命名变量来避免重复的字符串化:

from itertools import product

for trypass in map(''.join, product(map(str, range(0, 4)), repeat=4)):
    print('https://doorpasscode.kringlecastle.com/checkpass.php?i= ({})&resourceId=77af125f-213f-4b2b-9e1e-ce156b6a838c'.format(trypass).)

.format(trypass)将使用默认元组格式规则将元组格式化为字符串,例如(3, 3, 3, 3)。相反,您应该明确告诉它如何格式化字符串,如:

.format(''.join(str(i) for i in trypass))

相关问题 更多 >

    热门问题