簡體   English   中英

如何返回給定字符串中的(x)個字符?

[英]How to return (x) number of characters in a given string?

我來這已經有一段時間了,而且我已經很近了。

我有兩個問題需要完成。 我完成的第一個。 它應該返回給定字符串的前三個索引,如果字符串少於3個字母,則不返回任何內容。 看起來像這樣:

在此處輸入圖片說明

第二個是相似的,但是涉及更多。 問題是:

在此處輸入圖片說明

希望這可以解釋我的問題。 我不知道如何獲取輸入的數字以與我要打印的索引數相對應。 在第一個問題中,它很簡單,因為始終只使用前三個索引。 現在,它是(n)個索引數。

非常感謝任何幫助(我正在使用Python 3.4.2)

字符串支持Python中的子字符串

def returnN(string, length):
    return string[:length] if len(string) >= length else ''

實際上:

>>> returnN('hello', 2)
'he'
>>> returnN('hello', 5)
'hello'
>>> returnN('BYE', 1)
'B'
>>> returnN('BYE', 10)
''

使用字符串方法的len和slice方法,例如:

def returnN(string, length):
  length_string = len(string)
  if length > length_string:
    return ''
  return string[0:length]

print(returnN('hello', 5))
print(returnN('hello', 2))
print(returnN('Nye', 1))
print(returnN('OKOK', 10))

或簡單的方法:

def returnN_S(string, length):
  return string[: length] if length <= len(string) else ''

print(returnN_S('hello', 5))
print(returnN_S('hello', 2))
print(returnN_S('Nye', 1))
print(returnN_S('OKOK', 10))

或單行方式:

returnN_H = lambda string, length: string[: length] if length <= len(string) else ''
print(returnN_H('hello', 5))
print(returnN_H('hello', 2))
print(returnN_H('Nye', 1))
print(returnN_H('OKOK', 10))

希望會有所幫助。

Python中的Unicode字符串不可變的 Unicode代碼點序列
Unicode代碼點只是一個從0到sys.maxunicode的數字,例如Nº128516: 😄'\\U0001f604'
諸如s[:2]之類的Unicode字符串s子字符串/片段返回一個包含2 Unicode代碼點的新Unicode字符串。
len(s)返回字符串s的Unicode代碼點數。
空字符串可以在Python源代碼中使用''字符串文字表示。


要從字符串或空字符串(如果文本大小太小)中返回給定數量的用戶可感知字符 ,可以使用\\X正則表達式(它與擴展的字形簇匹配)

#!/usr/bin/env python3
import regex # $ pip install regex

def returnN(text, n):
    chars = regex.findall(r'\X', text)
    return ''.join(chars[:n]) if len(chars) >= n else ''

text = 'a\u0300 biento\u0302t'
print(text) # -> à bientôt
print(returnN(text, 4)) # -> à bi

用戶可以感知的單個字符(例如可以跨越多個Unicode代碼點,例如U + 0061U + 0300


術語字符是不明確的。 它可能表示在不同情況下的字節,Unicode代碼點,字素簇。

input_string = "hello"

def returnN(string, n):
    return string[:n]

output = returnN(input_string, 3)

就這樣

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM