Я хочу сделать что-то вроде этого:Python: Есть ли эквивалент середины, справа и слева от BASIC?
>>> mystring = "foo"
>>> print(mid(mystring))
Помощь!
Я хочу сделать что-то вроде этого:Python: Есть ли эквивалент середины, справа и слева от BASIC?
>>> mystring = "foo"
>>> print(mid(mystring))
Помощь!
ломтиков на помощь :)
def left(s, amount):
return s[:amount]
def right(s, amount):
return s[-amount:]
def mid(s, offset, amount):
return s[offset:offset+amount]
Осторожно с помощью этой функции 'right'. ''asdf' [- 0:] == 'asdf'', а не' '' '. – user2357112
@ user2357112 уверен, что вы правы. Код был предоставлен скорее для illustartive цели, чтобы показать, как функции в Python и Basic могут соответствовать –
Если я помню мой QBasic, справа, слева и в середине сделать что-то вроде этого:
>>> s = '123456789'
>>> s[-2:]
'89'
>>> s[:2]
'12'
>>> s[4:6]
'56'
http://www.angelfire.com/scifi/nightcode/prglang/qbasic/function/strings/left_right.html
Эти отлично работает для чтения влево/вправо «n» символов из строки, но, по крайней мере, с BBC BASIC, то LEFT$()
и RIGHT$()
функции позволили изменять влево/вправо "N" символов тоже ...
Например:
10 a$="00000"
20 RIGHT$(a$,3)="ABC"
30 PRINT a$
бы произвести:
00ABC
Edit: С пишу это, я придумал свое решение ...
def left(s, amount = 1, substring = ""):
if (substring == ""):
return s[:amount]
else:
if (len(substring) > amount):
substring = substring[:amount]
return substring + s[:-amount]
def right(s, amount = 1, substring = ""):
if (substring == ""):
return s[-amount:]
else:
if (len(substring) > amount):
substring = substring[:amount]
return s[:-amount] + substring
К return n символов, которые вы бы назвали
substring = left(string,<n>)
Если по умолчанию 1, если не указано. То же самое относится и к праву()
Чтобы изменить левый или правый п символов строки вы называете
newstring = left(string,<n>,substring)
Это бы первые п символов подстроки и перезаписывать первые п символов string, возвращая результат в newstring. То же самое работает для right().
Это действительно комментарий, а не ответ. С немного больше rep, [вы сможете оставлять комментарии] (// stackoverflow.com/privileges/comment). Пожалуйста, используйте ответы только для публикации фактических ответов. – Bowdzone
Благодаря Энди W
я обнаружил, что в середине() не совсем работа, как я ожидал, и я модифицирована следующим образом:
def mid(s, offset, amount):
return s[offset-1:offset+amount-1]
я выполнил следующий тест:
print('[1]23', mid('123', 1, 1))
print('1[2]3', mid('123', 2, 1))
print('12[3]', mid('123', 3, 1))
print('[12]3', mid('123', 1, 2))
print('1[23]', mid('123', 2, 2))
В результате чего:
[1]23 1
1[2]3 2
12[3] 3
[12]3 12
1[23] 23
Это было то, чего я ожидал. Исходный код mid() производит следующее:
[1]23 2
1[2]3 3
12[3]
[12]3 23
1[23] 3
Но функции left() и right() работают нормально. Спасибо.
Вы можете использовать этот метод также будет действовать как этот
thadari=[1,2,3,4,5,6]
#Front Two(Left)
print(thadari[:2])
[1,2]
#Last Two(Right)
print(thadari[:-2])
[5,6]
#mid
mid = len(thadari) //2
lefthalf = thadari[:mid]
[1,2,3]
righthalf = thadari[mid:]
[4,5,6]
Надежда это поможет
Что 'mid' в BASIC делать? – mgilson
Я подозреваю, что 'mid',' left' и 'right' требуют дополнительных аргументов, не так ли? – alecxe