Python:不带列表的第一个字符

Python:不带列表的第一个字符,python,python-3.x,loops,Python,Python 3.x,Loops,我的代码是使用每个单词/数字的第一个字符/数字作为句子/短语中的字符创建密码,并按原样打印 def create_password(phrase): password = '' phrase_list = phrase.split(' ') print (phrase_list) for i in phrase_list: print (i[0]) password += i[0] return password if

我的代码是使用每个单词/数字的第一个字符/数字作为句子/短语中的字符创建密码,并按原样打印

def create_password(phrase):
    password = ''
    phrase_list = phrase.split(' ')
    print (phrase_list)

    for i in phrase_list:
        print (i[0])
        password += i[0]
    return password

if __name__ == '__main__':
    # Inputs
    phrase = str(input("Enter a sentence or phrase: "))

    # Outputs
    password = create_password(phrase)
    print(password)
示例:停下来闻一闻350朵“玫瑰”。->Sast3r。(忽略 报价单(改用r)

def create_password(phrase):
    password = ''
    phrase_list = phrase.split(' ')
    print (phrase_list)

    for i in phrase_list:
        print (i[0])
        password += i[0]
    return password

if __name__ == '__main__':
    # Inputs
    phrase = str(input("Enter a sentence or phrase: "))

    # Outputs
    password = create_password(phrase)
    print(password)
这将是非常容易使用列表,但您不能在我的代码分配中使用它们。所以,在我做了这么多之后,我不知道现在该做什么

def create_password(phrase):
    password = ''
    phrase_list = phrase.split(' ')
    print (phrase_list)

    for i in phrase_list:
        print (i[0])
        password += i[0]
    return password

if __name__ == '__main__':
    # Inputs
    phrase = str(input("Enter a sentence or phrase: "))

    # Outputs
    password = create_password(phrase)
    print(password)
功能:

def create_password(phrase):
q = "'"  # quotations
dq = '"'  # double quotes

password = phrase[0]

for i in phrase:
    x = phrase.find(" ")
    if i.isalnum:
        password += phrase[x + 1]
    elif x == q or x == dq:
        password += phrase[x + 2]

return password
def create_password(phrase):
    password = ''
    phrase_list = phrase.split(' ')
    print (phrase_list)

    for i in phrase_list:
        print (i[0])
        password += i[0]
    return password

if __name__ == '__main__':
    # Inputs
    phrase = str(input("Enter a sentence or phrase: "))

    # Outputs
    password = create_password(phrase)
    print(password)
主要内容:

def create_password(phrase):
    password = ''
    phrase_list = phrase.split(' ')
    print (phrase_list)

    for i in phrase_list:
        print (i[0])
        password += i[0]
    return password

if __name__ == '__main__':
    # Inputs
    phrase = str(input("Enter a sentence or phrase: "))

    # Outputs
    password = create_password(phrase)
    print(password)

尝试获取字符串中的第一个字符,然后获取空格后的每个字符。看来你的想法是对的。

你肯定走对了路!使用这种方法绝对是正确的

def create_password(phrase):
    password = ''
    phrase_list = phrase.split(' ')
    print (phrase_list)

    for i in phrase_list:
        print (i[0])
        password += i[0]
    return password

if __name__ == '__main__':
    # Inputs
    phrase = str(input("Enter a sentence or phrase: "))

    # Outputs
    password = create_password(phrase)
    print(password)
但是,您需要了解
str.find()
方法的作用。请看签名:

str.find(sub [,start [,end) -> int

    # sub -> character to find
    # start -> where the function should start looking in the string
    # end -> where the function should stop looking

    # Returns a number, which is the place it found the character. 
    # If it didn't find anything, then return -1.
def create_password(phrase):
    password = ''
    phrase_list = phrase.split(' ')
    print (phrase_list)

    for i in phrase_list:
        print (i[0])
        password += i[0]
    return password

if __name__ == '__main__':
    # Inputs
    phrase = str(input("Enter a sentence or phrase: "))

    # Outputs
    password = create_password(phrase)
    print(password)
在不告诉函数从何处开始的情况下,它将始终找到字符串中第一个出现的字符。它不会知道您正在遍历字符串的每个字符

def create_password(phrase):
    password = ''
    phrase_list = phrase.split(' ')
    print (phrase_list)

    for i in phrase_list:
        print (i[0])
        password += i[0]
    return password

if __name__ == '__main__':
    # Inputs
    phrase = str(input("Enter a sentence or phrase: "))

    # Outputs
    password = create_password(phrase)
    print(password)
让我们把它改大一点:

for char_index in xrange(len(phrase)):
    # Tell the method to look after char_index: we've already looked before this!
    x = phrase.find(' ', char_index) index

    if phrase[x+1].isalnum(): # It's a function, notice the brackets?
        password += phrase[x + 1]
    elif phrase[x+2] == q or phrase[x+2] == dq:
        password += phrase[x + 2]
def create_password(phrase):
    password = ''
    phrase_list = phrase.split(' ')
    print (phrase_list)

    for i in phrase_list:
        print (i[0])
        password += i[0]
    return password

if __name__ == '__main__':
    # Inputs
    phrase = str(input("Enter a sentence or phrase: "))

    # Outputs
    password = create_password(phrase)
    print(password)

希望这会得到您想要的密码。

我认为,更直接的方法是浏览整个短语,而不必担心在空格上拆分。相反,记录你是否刚刚看到一个空间。您只想在看到空格后添加角色

def create_password(phrase):
    q = "'"  # quotations
    dq = '"'  # double quotes

    #Initialize the password to be an empty string
    password = ""

    #We are at the start of a new word (want to add first index to password)
    new_word = True

    #Walk through every character in the phrase
    for char in phrase:

        #We only want to add char to password if the following is all true:
        #(1) It's a letter or number
        #(2) It's at the start of a new word
        #(3) It's not a single quote
        #(4) It's not a double quote
        if char.isalnum and new_word:
            if char != q and char != dq:
                password += char
                new_word = False #<-- After adding char, we are not at a new word

        #If we see a space then we are going to be at a new word
        elif char == " ":
            new_word = True

    return password

p = create_password('Stop and smell the 350 "roses"')
print(p)
def create_password(phrase):
    password = ''
    phrase_list = phrase.split(' ')
    print (phrase_list)

    for i in phrase_list:
        print (i[0])
        password += i[0]
    return password

if __name__ == '__main__':
    # Inputs
    phrase = str(input("Enter a sentence or phrase: "))

    # Outputs
    password = create_password(phrase)
    print(password)

优先使用内置函数,例如,每次查找空格的位置,那么为什么不直接按照空格进行拆分函数,使字符串直接到字符列表中,每个元素都是一个单词,然后删除列表中的每个元素

def create_password(phrase):
    password = ''
    phrase_list = phrase.split(' ')
    print (phrase_list)

    for i in phrase_list:
        print (i[0])
        password += i[0]
    return password

if __name__ == '__main__':
    # Inputs
    phrase = str(input("Enter a sentence or phrase: "))

    # Outputs
    password = create_password(phrase)
    print(password)

字符串与字符列表基本相同。几乎所有你能用一个列表做的事情,都可以用一个字符串来完成。我认为到目前为止你的思路是正确的。当我第一次读到你的问题时,我立刻想到了
.find
,这似乎就是你想要的。但是,
.find()
还有第二个参数,它告诉您在什么时候开始查找。您可以始终使用迭代器:
l='abc'
,然后
next(iter(l))
将为您提供
a
;啊,谢谢你展示了find的功能。我基本上只是把它插上,只知道它计算空间的#。哈哈,谢谢。我看你离开了。查找功能后会怎么样。您的方法充分利用了布尔忽略和字符串的混淆。干得好:D