python - 在Python中循环检查字符串中的字母
问题描述
我想创建一个循环,直到创建了一个以“A”开头并以“Z”结尾的随机字符串。
import string
from random import choice
def random_string():
""" Generates a 5 letter random string. """
rs = ''.join(choice(string.ascii_uppercase) for _ in range(5))
print(rs)
while random_string()[-1] != "Z" and random_string()[0]) != "A":
print("keep going")
return random_string
到目前为止,我有这个,我在 while 循环检查第一个和最后一个字母时遇到了麻烦。有没有更简单(和正确)的方法来测试这个?
提前致谢。
解决方案
如果您想让字符串中的第一个和最后一个字母相同,为什么不随机化中间的 3 个字符。
每次运行都会有一个成功的结果。
pre = 'A'
suf = 'Z'
n = 3
result = pre + ''.join(random.choice(string.ascii_uppercase) for i in range(n)) + suf
#'ACUUZ'
如果您想通过while
循环来实现这一点,您需要确保您return
在循环之外,并且您的循环在您的条件不满足时运行。
def random_string():
rs = ''.join(choice(string.ascii_uppercase) for _ in range(5))
while rs[-1] != "Z" or rs[0] != "A":
rs = ''.join(choice(string.ascii_uppercase) for _ in range(5))
return rs
有了上面,我们在while
循环之后定义了我们的返回,确保它只在找到匹配项时返回。
输出
for i in range(10):
print(random_string())
ASKPZ
AHOKZ
AYWQZ
ASHYZ
ACENZ
ASIVZ
ADTVZ
AZWHZ
AAHHZ
AKZHZ
推荐阅读
- mysql - 如何优化包含相同“in”语句的sql?
- java - 如何在运行微服务时禁用/启用 Micrometer 指标
- python - 如何访问字典中的字典对象(带有for循环)?蟒蛇 3.6
- c# - 使用 oracle 和 C# 比较两个选择的结果
- java - solr wordbreaksolrspellchecker 中的 ArrayIndexOutofBoundsException 获取建议
- java - 我想实现一个通用数据模型类,它有一个字符串类型的属性
- firebase - flutter 从 Firebase 获取插入的 id
- shopify - 如何在首发主题 shopify 中添加富文本编辑器部分
- php - 使用 php 的 Soap 1.2 请求
- r - 在shinydashboard 中,白框被夹在右上角和右下角