python запускается с методом

#python

#python

Вопрос:

Я немного новичок в python и не могу понять, почему это не работает. У меня есть переменная, которая выглядит примерно так:

 [u'n                Data I want              ']
  

но у меня также есть переменные, которые просто:

 [u'                more Data I want              ']
  

Я запускаю переменные через цикл, но мне нужно удалить все лишнее из данных. Я создал функцию для решения этой проблемы, но я не уверен, почему она не работает (я не уверен, но я подозреваю, что n — это специальный символ)

 def stripName(name):
    name = str(name)
    if name.startswith( "n" ):
        print "starts with new line"
        name = name[5:-2]
    else:
        print "does not start with new line"
        name = name[3:-2]
    return name
  

Проблема в том, что «if name.startswith( «n» )» никогда не совпадает..Я просмотрел другие примеры и думаю, что делаю это так, как они есть. Я даже пытался if name.startswith( "n" ) == 'True': , но это тоже не сработало.

Заранее спасибо за любую информацию, которую вы, ребята, можете дать.

Комментарии:

1. Это не «команда», это «метод» строки. Пожалуйста, обновите свой вопрос.

2. Привет, С. Лотт.. Я только что обновил его, извините за это .. в отличие от 5 минут назад, я не знал разницы ..lol. извините за это.

Ответ №1:

Как насчет:

 def stripName(name):
    return name[0].strip()
  

?

Комментарии:

1. вау, спасибо.. это в значительной степени удалило основную часть моего кода. Не знал, что вы можете это сделать. Спасибо, Стив!

Ответ №2:

Я думаю, что вы передаете list экземпляр, а затем преобразуете его в строку, используя str (in name=str(name) ). Попробуйте name=name[0] вместо этого.

Кроме того, код выглядит неправильно отформатированным. Следующие строки def должны иметь отступ на один уровень.

Другое дело, startswith это не команда. Это метод. Пожалуйста, проясните свою терминологию, иначе вы в конечном итоге сильно запутаетесь. В таком языке программирования, как Python, нет никаких «команд». Вместо этого код состоит из операторов и выражений, включая вызовы методов.

Комментарии:

1. Спасибо, МАК .. имеет смысл .. Я все еще думаю, как в те времена, когда я писал сценарии в оболочке .. лол. Спасибо вам за ваши советы и помощь! Хорошего дня!

Ответ №3:

Если name является [u'n data '] , то str(name) включает квадратные скобки. Вы должны написать

 name = name[0]