기류, Python 및 문자열 연결
기류개념en passant을 설명하지만 이 글들의 주요 중점은 파이썬개념과 기술이다.
본고에서 나는 문자열 연결을 중점적으로 소개하거나 여러 부분 (예를 들어 하드 인코딩 문자열, 변수,/또는 템플릿) 을 사용하여 텍스트를 조합할 것이다.
왜 연결을 해요?
처음에 나는 본고를Python 데이터 구조(예를 들어 목록과 사전)를 전문적으로 소개하고 싶었지만, 사실 나의 대다수 기류와 관련된 예는 문자열에 관한 것이다.
Python 문자열에 익숙하면 이 글을 건너뛰거나 빠르게 훑어볼 수 있습니다.
나는 이 화제의 다른 원인에 더 관심을 기울이고 싶다.
문자열이 있는 기본dag
from datetime import datetime
from airflow.models import DAG
from airflow.operators.dummy_operator import DummyOperator
dag_name = "string_sample"
task1_name = "start"
task2_name = "end"
my_dag = DAG(dag_id=dag_name + "_dag",
start_date=datetime(2020, 4, 29),
schedule_interval="0 0 * * *"
)
task1 = DummyOperator(dag=my_dag,
task_id="task_{}".format(task1_name)
)
task2 = DummyOperator(dag=my_dag,
task_id=f"task_{task2_name}"
)
task1 >> task2
Airflow 웹 UI를 보면 string_sample_dag
및 task_start
두 가지 작업으로 구성된 DAG가 표시됩니다.마찬가지로 사용되는 산자는 Dummy Operator 산입니다.이 DAG는 파이썬에서 문자열을 연결하고 포맷하는 방법을 보여 주는 핑계일 뿐입니다.
Python에서 문자열을 연결하는 다양한 방법
게으른 방식, 퀘스트 종료
여러 문자열을 연결하는 가장 간단한 방법은 더하기 기호+
를 사용하는 것이다.
dag_name + "_dag"
문자열을 추가하면 효과가 좋습니다. 다음은 또 다른 작업 예입니다.
>>> text = "world"
>>> print("hello " + text)
hello world
이곳은 게으름이 작용하지 않을 때이다.
>>> text = 123
>>> print("hello " + text)
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: must be str, not int
+
연산자는 연결을 시도하는 값을 보는 간단한 사람이다.때로는 유효하고, 때로는 무효입니다. 우리의 예에서, 문자열을 정수와 연결할 수 없습니다.작업을 수행하려면 +
를 문자열로 변환해야 합니다.
>>> print("hello " + str(text))
hello 123
1, 2, 3 형식이 더 좋아요.
DAG의 첫 번째 작업에서 두 번째 더 좋은 문자열 연결 방법이 있습니다.string 메서드"123"
를 사용하면 템플릿으로 사용할 문자열을 포맷할 수 있습니다.
"task_{}".format(task1_name)
이전의 "hello world"예시에서 우리의 인사말 템플릿은 .format()
입니다. 그 중에서 우리는 .format()
, "hello {}"
또는 {}
을 원하지 않습니다.
>>> text = "world"
>>> print("hello {}".format(text))
hello world
숫자에도 적용됩니다.
>>> text = 123
>>> print("hello {}".format(text))
hello 123
여러 값 포함
>>> greeting = "hello"
>>> text = "world"
>>> print("{} {}".format(text, greeting))
world hello
응, 이건 아닌 것 같아.world
방법은 123
자리 표시자의 출현 순서에 따라 값을 자리 표시자에게 분배한다.물론, 우리는 전달 값의 순서를 전환할 수 있지만, 시간의 추이에 따라 템플릿을 변경할 수 있습니까?
이런 상황을 피하기 위해서 서수를 사용하거나 더 좋은 것은 자리 표시자를 명명하는 것입니다.
우선 숫자:
print("{1} {0}".format(text, greeting))
hello world
첫 번째 값의 인덱스는 0이고 두 번째 값은 1입니다.
자리 표시자 이름:
>>> print("{hi} {who}".format(who=text, hi=greeting))
hello world
이름 자리 표시자를 사용하면 템플릿 문자열이 더 의미가 있지만 (이 코드를 나중에 보는 것이 더 좋습니다.) 어떤 값이 John
, 어떤 값이 .format()
인지 지정해야 합니다.
자세한 형식 옵션 및 예는 Pythondocumentation here을 참조하십시오.DAG는 필요하지 않을 수도 있지만 스택 오버플로우를 제외하고는 어디서부터 시작해야 하는지 아는 것이 좋습니다.
{} 문자열
Python 3.6은 문자열을 포맷하는 새로운 방법을 도입했습니다.
>>> text = "world"
>>> print(f"hello {text}")
hello world
hi
는 서식 적용 문자열을 나타냅니다.그러나fast에도 적용된다. 왜냐하면 이런 포맷 방법은 작성 속도가 빠르고 최종 결과를 생성하는 것도 빠르기 때문이다.
포맷 문자열에서 who
사이의 값은 실행할 때 계산되는 표현식입니다.따라서 다음을 수행할 수 있습니다.
>>> print(f"{5 - 4} hello to {text.lower()}")
1 hello to world
마찬가지로 Pythondocumentation을 읽으면 더 많은 용례와 고급 옵션을 발견할 수 있습니다.
Python 문자열에 대한 다른 내용은 매우 적다
이것은 DAG를 작성하는 데 사용할 수 없는 세부 사항일 수도 있지만, 특히 문자열에 대한 기본 개요를 완성해야 합니다.
Python에서 문자열 포맷에 괄호가 사용되고 있음을 알 수 있습니다. 괄호가 포함된 문자열을 어떻게 포맷합니까?두 권,duh:
>>> print(f"In {{text}} is {text}")
In {text} is world
따옴표f
어때요?우선, Python에서는 문자열 f
및 {}
을 사용할 수 있으며, 같은 기호를 사용하여 문자열을 닫아야 합니다.또 다른 이유는 따옴표를 피하기 위해서"
를 사용했기 때문이다.
>>> print('This is a double quote: "')
This is a double quote: "
>>> print("This is a double quote too: \"")
This is a double quote too: "
마지막으로 긴 문자열을 어떻게 처리합니까?Python에서는 백슬래시'
를 사용하여 긴 행 코드를 여러 줄로 분할할 수 있습니다.
>>> print("hello " \
... "world")
hello world
보시다시피 Python은 새 줄에 두 개의 문자열을 연결하는 것을 무시합니다. (이를 실현하려면 "
를 실행할 수 있습니다.
또한 \
또는 \
를 사용하여 여러 줄 문자열을 만들 수 있습니다.
>>> print("""hello
>>> world""")
hello
world
추가 내용
실제로 Python 문자열, 연결, 형식에 대해서는 아직 할 말이 많지만, 이것은 다른 문장이 필요할 것이다.
개인적으로 파이썬을 처음 접하는 사람들에게는 이런 일들이 그리 재미있지 않다고 생각한다.하지만 제가 과거에 계속 틀렸습니다. 유니콘에 투표해 주십시오. 제가 틀렸다고 말해 주십시오. 문자열에 대한 더 많은 정보를 알고 싶습니다.
어떤 것을 사용합니까?
Python 3.6 이상 버전 "hello \n"
- 문자열을 사용하는 것은 실행 가능한 방법입니다. 문자열은 작성 속도가 빠르고 유지 보수가 쉽습니다.
그러나 나는 우선 빠른 디버깅을 위해 """
(가능하면) 도움을 청한다는 것을 인정한다.'''
야외에서 그것을 사용하는 예가 많거나 주의해야 할 낡은 코드를 만날 수 있기 때문에 언급할 만하다.
즉, 문서의 링크를 보고 Python이 제공하는 포맷 가능성을 이해하는 것이 좋습니다. 조만간 필요할 것입니다.
파렴치한 플러그
지원이나 도움이 필요하시면 언제든지 댓글이나 직접 메시지로 연락 주세요.트위터에서 나와 프로세서를 찾을 수 있다
.
만약 당신이 더욱 구조화된 도움을 필요로 한다면, 전화Untitled Data Company(저를 포함)의 좋은 사람들은 당신이 모든 데이터 수요를 만족시키는 것을 기꺼이 도울 것입니다.
신용
표지 사진은 Jess Bailey 에서 촬영되었다.
Reference
이 문제에 관하여(기류, Python 및 문자열 연결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/mucio/part-2-string-concatenation-4pg9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
from datetime import datetime
from airflow.models import DAG
from airflow.operators.dummy_operator import DummyOperator
dag_name = "string_sample"
task1_name = "start"
task2_name = "end"
my_dag = DAG(dag_id=dag_name + "_dag",
start_date=datetime(2020, 4, 29),
schedule_interval="0 0 * * *"
)
task1 = DummyOperator(dag=my_dag,
task_id="task_{}".format(task1_name)
)
task2 = DummyOperator(dag=my_dag,
task_id=f"task_{task2_name}"
)
task1 >> task2
게으른 방식, 퀘스트 종료
여러 문자열을 연결하는 가장 간단한 방법은 더하기 기호
+
를 사용하는 것이다.dag_name + "_dag"
문자열을 추가하면 효과가 좋습니다. 다음은 또 다른 작업 예입니다.>>> text = "world"
>>> print("hello " + text)
hello world
이곳은 게으름이 작용하지 않을 때이다.>>> text = 123
>>> print("hello " + text)
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: must be str, not int
+
연산자는 연결을 시도하는 값을 보는 간단한 사람이다.때로는 유효하고, 때로는 무효입니다. 우리의 예에서, 문자열을 정수와 연결할 수 없습니다.작업을 수행하려면 +
를 문자열로 변환해야 합니다.>>> print("hello " + str(text))
hello 123
1, 2, 3 형식이 더 좋아요.
DAG의 첫 번째 작업에서 두 번째 더 좋은 문자열 연결 방법이 있습니다.string 메서드
"123"
를 사용하면 템플릿으로 사용할 문자열을 포맷할 수 있습니다."task_{}".format(task1_name)
이전의 "hello world"예시에서 우리의 인사말 템플릿은 .format()
입니다. 그 중에서 우리는 .format()
, "hello {}"
또는 {}
을 원하지 않습니다.>>> text = "world"
>>> print("hello {}".format(text))
hello world
숫자에도 적용됩니다.>>> text = 123
>>> print("hello {}".format(text))
hello 123
여러 값 포함
>>> greeting = "hello"
>>> text = "world"
>>> print("{} {}".format(text, greeting))
world hello
응, 이건 아닌 것 같아.world
방법은 123
자리 표시자의 출현 순서에 따라 값을 자리 표시자에게 분배한다.물론, 우리는 전달 값의 순서를 전환할 수 있지만, 시간의 추이에 따라 템플릿을 변경할 수 있습니까?이런 상황을 피하기 위해서 서수를 사용하거나 더 좋은 것은 자리 표시자를 명명하는 것입니다.
우선 숫자:
print("{1} {0}".format(text, greeting))
hello world
첫 번째 값의 인덱스는 0이고 두 번째 값은 1입니다.자리 표시자 이름:
>>> print("{hi} {who}".format(who=text, hi=greeting))
hello world
이름 자리 표시자를 사용하면 템플릿 문자열이 더 의미가 있지만 (이 코드를 나중에 보는 것이 더 좋습니다.) 어떤 값이 John
, 어떤 값이 .format()
인지 지정해야 합니다.자세한 형식 옵션 및 예는 Pythondocumentation here을 참조하십시오.DAG는 필요하지 않을 수도 있지만 스택 오버플로우를 제외하고는 어디서부터 시작해야 하는지 아는 것이 좋습니다.
{} 문자열
Python 3.6은 문자열을 포맷하는 새로운 방법을 도입했습니다.
>>> text = "world"
>>> print(f"hello {text}")
hello world
hi
는 서식 적용 문자열을 나타냅니다.그러나fast에도 적용된다. 왜냐하면 이런 포맷 방법은 작성 속도가 빠르고 최종 결과를 생성하는 것도 빠르기 때문이다.포맷 문자열에서
who
사이의 값은 실행할 때 계산되는 표현식입니다.따라서 다음을 수행할 수 있습니다.>>> print(f"{5 - 4} hello to {text.lower()}")
1 hello to world
마찬가지로 Pythondocumentation을 읽으면 더 많은 용례와 고급 옵션을 발견할 수 있습니다.Python 문자열에 대한 다른 내용은 매우 적다
이것은 DAG를 작성하는 데 사용할 수 없는 세부 사항일 수도 있지만, 특히 문자열에 대한 기본 개요를 완성해야 합니다.
Python에서 문자열 포맷에 괄호가 사용되고 있음을 알 수 있습니다. 괄호가 포함된 문자열을 어떻게 포맷합니까?두 권,duh:
>>> print(f"In {{text}} is {text}")
In {text} is world
따옴표f
어때요?우선, Python에서는 문자열 f
및 {}
을 사용할 수 있으며, 같은 기호를 사용하여 문자열을 닫아야 합니다.또 다른 이유는 따옴표를 피하기 위해서"
를 사용했기 때문이다.
>>> print('This is a double quote: "')
This is a double quote: "
>>> print("This is a double quote too: \"")
This is a double quote too: "
마지막으로 긴 문자열을 어떻게 처리합니까?Python에서는 백슬래시'
를 사용하여 긴 행 코드를 여러 줄로 분할할 수 있습니다.
>>> print("hello " \
... "world")
hello world
보시다시피 Python은 새 줄에 두 개의 문자열을 연결하는 것을 무시합니다. (이를 실현하려면 "
를 실행할 수 있습니다.
또한 \
또는 \
를 사용하여 여러 줄 문자열을 만들 수 있습니다.
>>> print("""hello
>>> world""")
hello
world
추가 내용
실제로 Python 문자열, 연결, 형식에 대해서는 아직 할 말이 많지만, 이것은 다른 문장이 필요할 것이다.
개인적으로 파이썬을 처음 접하는 사람들에게는 이런 일들이 그리 재미있지 않다고 생각한다.하지만 제가 과거에 계속 틀렸습니다. 유니콘에 투표해 주십시오. 제가 틀렸다고 말해 주십시오. 문자열에 대한 더 많은 정보를 알고 싶습니다.
어떤 것을 사용합니까?
Python 3.6 이상 버전 "hello \n"
- 문자열을 사용하는 것은 실행 가능한 방법입니다. 문자열은 작성 속도가 빠르고 유지 보수가 쉽습니다.
그러나 나는 우선 빠른 디버깅을 위해 """
(가능하면) 도움을 청한다는 것을 인정한다.'''
야외에서 그것을 사용하는 예가 많거나 주의해야 할 낡은 코드를 만날 수 있기 때문에 언급할 만하다.
즉, 문서의 링크를 보고 Python이 제공하는 포맷 가능성을 이해하는 것이 좋습니다. 조만간 필요할 것입니다.
파렴치한 플러그
지원이나 도움이 필요하시면 언제든지 댓글이나 직접 메시지로 연락 주세요.트위터에서 나와 프로세서를 찾을 수 있다
.
만약 당신이 더욱 구조화된 도움을 필요로 한다면, 전화Untitled Data Company(저를 포함)의 좋은 사람들은 당신이 모든 데이터 수요를 만족시키는 것을 기꺼이 도울 것입니다.
신용
표지 사진은 Jess Bailey 에서 촬영되었다.
Reference
이 문제에 관하여(기류, Python 및 문자열 연결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/mucio/part-2-string-concatenation-4pg9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
>>> print(f"In {{text}} is {text}")
In {text} is world
>>> print('This is a double quote: "')
This is a double quote: "
>>> print("This is a double quote too: \"")
This is a double quote too: "
>>> print("hello " \
... "world")
hello world
>>> print("""hello
>>> world""")
hello
world
Python 3.6 이상 버전
"hello \n"
- 문자열을 사용하는 것은 실행 가능한 방법입니다. 문자열은 작성 속도가 빠르고 유지 보수가 쉽습니다.그러나 나는 우선 빠른 디버깅을 위해
"""
(가능하면) 도움을 청한다는 것을 인정한다.'''
야외에서 그것을 사용하는 예가 많거나 주의해야 할 낡은 코드를 만날 수 있기 때문에 언급할 만하다.즉, 문서의 링크를 보고 Python이 제공하는 포맷 가능성을 이해하는 것이 좋습니다. 조만간 필요할 것입니다.
파렴치한 플러그
지원이나 도움이 필요하시면 언제든지 댓글이나 직접 메시지로 연락 주세요.트위터에서 나와 프로세서를 찾을 수 있다
.
만약 당신이 더욱 구조화된 도움을 필요로 한다면, 전화Untitled Data Company(저를 포함)의 좋은 사람들은 당신이 모든 데이터 수요를 만족시키는 것을 기꺼이 도울 것입니다.
신용
표지 사진은 Jess Bailey 에서 촬영되었다.
Reference
이 문제에 관하여(기류, Python 및 문자열 연결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/mucio/part-2-string-concatenation-4pg9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(기류, Python 및 문자열 연결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mucio/part-2-string-concatenation-4pg9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)