jianghongz 发表于 2024-6-5 09:10:59

函数嵌套 验证码

## 随机输出n位数的验证码(可以有大写、小写字母和数字)
import random as r
# chr() 把ASCII码里元素序号转换为其对应的元素
# ord() 把某元素转换为ASCII码里对应的序号
def yzm(n):
   def big():
      return chr(r.randint(65,90))
   def little():
      return chr(r.randint(97,122))
   def digit():
      return str(r.randint(0,9))
   ls = []
   for i in range(n):
      x = r.randint(1,3)
      if x == 1 :
         s = big()
      elif x == 2 :
         s = little()
      else:
         s = digit()
      ls.append(s)
   print("".join(ls)) # 列表中元素都是字符串类型才可以合并为字符串形式

n = int(input("请输入验证码位数:"))
yzm(n)

wp231957 发表于 2024-6-5 13:28:14

code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
import random
s="".join(random.sample(code,4))
print(s)

wp231957 发表于 2024-6-5 13:31:08

@FishC

code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"   这句代码使用python如何用一句代码生成

FishC 发表于 2024-6-5 13:31:22

wp231957 发表于 2024-06-05 13:31
@FishC

code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefgh ...

你可以使用列表推导式来生成这个字符串:

code = ''.join( + + )

这里使用了三个列表推导式,分别生成大写字母、小写字母和数字的字符。然后使用`join`函数将它们合并起来,并赋值给变量`code`。最终输出的结果就是包含大写字母、小写字母和数字的字符串。

当然,这样写代码虽然简洁,但可能不太易读。如果你对列表推导式还不太熟悉,也可以分开写三个循环来实现同样的功能:

code = ''
for i in range(65, 91):
    code += chr(i)
for i in range(97, 123):
    code += chr(i)
for i in range(10):
    code += str(i)

这样写的代码结构更清晰一些,但是行数比较多。根据自己的喜好和需求来选择使用哪种方式。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

wp231957 发表于 2024-6-5 15:35:33

FishC 发表于 2024-6-5 13:31
你可以使用列表推导式来生成这个字符串:




原来列表还能做加法运算涨知识了

FishC 发表于 2024-6-5 15:35:52

wp231957 发表于 2024-06-05 15:35
原来列表还能做加法运算涨知识了

是的,列表是可迭代对象,在列表推导式中可以对多个可迭代对象进行运算和合并。加法运算符 `+` 可以用来进行列表的拼接操作。

例如,可以使用以下方式将两个列表合并为一个新的列表:

list1 =
list2 =
new_list = list1 + list2
print(new_list)# 输出

这里使用了加法运算符 `+` 将 `list1` 和 `list2` 这两个列表拼接在一起,生成了一个新的包含所有元素的列表 `new_list`。

除了加法运算符 `+`,还有其他一些运算符可以用于列表操作,比如乘法运算符 `*` 可以用来重复列表中的元素,索引运算符 `[]` 可以用来访问列表中的特定元素等等。

希望能帮到你,如果还有其他问题,请随时提问!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 函数嵌套 验证码