목차
1. 개요
2. 플레이북 핵심 요소
3. 플레이북 구문(yaml)
1) YAML 소개
1. YAML 형식은 다음과 같습니다
2. Playbooks yaml 구성 파일 설명
3. 예시
2) 변수 변수
1. Facts: 직접 호출할 수 있습니다.
2、用户自定义变量
3、通过roles传递变量
4、 Host Inventory
3)流程控制
1、用when 来表示的条件判断
2、标签(只执行配置文件中的一个任务)
3、循环 with_items
4、循环嵌套(字典)
4)模板 templates
1、定义模板" >1、定义模板
2、定义yaml编排" >2、定义yaml编排
5)handlers(触发事件)
6)roles
1、roles介绍与优势
2、目录结构
3、实战操作
운영 및 유지보수 안전 Ansible Playbook 설명 및 실제 작동

Ansible Playbook 설명 및 실제 작동

Jun 09, 2023 pm 08:58 PM
목록

1. 개요

  • playbookad-hoc과 비교하여 ansible을 사용하는 방식이 완전히 다르며, saltstack의 상태 파일과 유사합니다. Ad-hoc은 영구적으로 사용할 수 없으며 플레이북은 영구적으로 사용할 수 있습니다.
  • playbook은 하나 이상의 연극으로 구성된 목록입니다. 놀이의 주요 기능은 이전에 그룹으로 그룹화된 호스트에게 Ansible의 작업을 통해 미리 정의된 역할을 부여하는 것입니다.
  • 기본적으로 소위 태스크는 Ansible을 호출하는 모듈에 지나지 않습니다. 여러 극을 하나의 플레이북으로 구성하면 미리 정해진 메커니즘에 따라 특정 작업을 완료하기 위해 결합할 수 있습니다.

참조 문서: https://ansible-tran.readthedocs.io/en/latest/docs/playbooks.html

Ansible의 기본 소개 및 환경 배포에 대해서는 내 기사를 참조할 수 있습니다. Ansible 소개 및 실제 동작 시연


Ansible Playbook 讲解与实战操作


2. 플레이북 핵심 요소

  • Hosts실행된 원격 호스트 목록
  • 작업 작업 세트
  • Varniables내장 변수 또는 사용자 정의 변수는 플레이북에서 호출됩니다.
  • Templates템플릿, 즉 구성 파일 등과 같은 템플릿 구문을 사용하는 파일
  • Handlers는 notity와 함께 사용됩니다. 특정 조건에 의해 트리거된 작업은 조건이 충족될 때만 실행되고, 그렇지 않으면 실행되지 않습니다.
  • Tags 태그는 실행될 특정 작업을 지정합니다. 플레이북의 코드 일부를 선택하고 실행하는 데 사용됩니다.

3. 플레이북 구문(yaml)

  • 플레이북은 yaml 구문 형식을 사용하며 접미사는 yaml 또는 yml일 수 있습니다.
  • YAML( /ˈjæməl/ )은 XML, C 언어, Python, Perl 및 전자 메일 형식인 RFC2822를 포함한 많은 다른 언어를 참조합니다. Clark Evans는 2001년 5월에 이 언어를 처음 게시했으며 Ingy döt Net 및 Oren Ben-Kiki는 다음과 같습니다. 또한 이 언어의 공동 디자이너이기도 합니다.
  • YAML 형식은 JSON과 유사한 파일 형식입니다. 파일 구성 작성에는 YAML이 사용되며, 개발 및 디자인에는 JSON이 주로 사용됩니다.

1) YAML 소개

1. YAML 형식은 다음과 같습니다

  • 파일의 첫 번째 줄은 YAML 파일의 시작을 나타내는 "---"(하이픈 3개)로 시작해야 합니다.
  • 같은 줄에서 # 뒤의 내용은 쉘, 파이썬, 루비와 유사한 주석을 나타냅니다.
  • YAML의 목록 요소는 "-"로 시작하고 뒤에 공백이 옵니다. 다음은 요소 콘텐츠입니다.
  • 동일 목록의 요소는 동일한 들여쓰기를 유지해야 합니다. 그렇지 않으면 오류로 처리됩니다.
  • 호스트, 변수, 역할, 작업 등의 플레이 객체는 키 값을 ":"으로 구분하여 표현하며, ":" 뒤에는 공백을 추가해야 합니다.
2. Playbooks yaml 구성 파일 설명
Hosts:运行指定任务的目标主机
remoute_user:在远程主机上执行任务的用户;
sudo_user:
tasks:任务列表
 
tasks的具体格式:
 
tasks:
- name: TASK_NAME
module: arguments
notify: HANDLER_NAME
handlers:
- name: HANDLER_NAME
module: arguments
 
##模块,模块参数:
格式如下:
(1)action: module arguments
 (2) module: arguments
注意:shell和command模块后直接加命令,而不是key=value类的参数列表
 
 
handlers:任务,在特定条件下触发;接受到其他任务的通知时被触发;
로그인 후 복사

3. 예시

---
- hosts: web
remote_user: root
tasks:
- name: install nginx##安装模块,需要在被控主机里加上nginx的源
yum: name=nginx state=present
- name: copy nginx.conf##复制nginx的配置文件过去,需要在本机的/tmp目录下编辑nginx.conf
copy: src=/tmp/nginx.conf dest=/etc/nginx/nginx.conf backup=yes
notify: reload#当nginx.conf发生改变时,通知给相应的handlers
tags: reloadnginx#打标签
- name: start nginx service#服务启动模块
service: name=nginx state=started
tags: startnginx#打标签

handlers:
- name: reload
service: name=nginx state=restarted
로그인 후 복사

2) 변수 변수

변수 변수에는 네 가지 정의 방법이 있습니다.

1. Facts: 직접 호출할 수 있습니다.

Ansible에는 설정 모듈이 있습니다. 이 모듈은 주로 노드 자체의 시스템 정보, BIOS 정보, 네트워크를 통해 구현됩니다. , 하드 디스크 및 기타 정보. 여기의 변수는 setup 모듈을 사용하여 사실 구성 요소를 직접 호출한 다음 이를 스크립트에 직접 넣어 호출할 수도 있습니다.

ansible web -m setup
로그인 후 복사

Ansible Playbook 讲解与实战操作

常用的几个参数:

ansible_all_ipv4_addresses # ipv4的所有地址
ansible_all_ipv6_addresses # ipv6的所有地址
ansible_date_time # 获取到控制节点时间
ansible_default_ipv4 # 默认的ipv4地址
ansible_distribution # 系统
ansible_distribution_major_version # 系统的大版本
ansible_distribution_version # 系统的版本号
ansible_domain #系统所在的域
ansible_env #系统的环境变量
ansible_hostname #系统的主机名
ansible_fqdn #系统的全名
ansible_machine #系统的架构
ansible_memory_mb #系统的内存信息
ansible_os_family # 系统的家族
ansible_pkg_mgr # 系统的包管理工具
ansible_processor_cores #系统的cpu的核数(每颗)
ansible_processor_count #系统cpu的颗数
ansible_processor_vcpus #系统cpu的总个数=cpu的颗数*CPU的核数
ansible_python # 系统上的python
로그인 후 복사

搜索

ansible web -m setup -a 'filter=*processor*'
로그인 후 복사

Ansible Playbook 讲解与实战操作

2、用户自定义变量

自定义变量有两种方式

  • 通过命令行传入
ansible-playbook命令行中的 -e VARS,--extra-vars VARS,这样就可以直接把自定义的变量传入
로그인 후 복사

使用playbook定义变量,实例如下:

---
- hosts: web
remote_user: root
tasks:

- name: install {{ rpmname }}
yum: name={{ rpmname }} state=present
- name: copy {{ rpmname }}.conf
copy: src=/tmp/{{ rpmname }}.conf dest=/etc/{{ rpmname }}/{{ rpmname }}.conf backup=yes
notify: reload
tags: reload{{ rpmname }}
- name: start {{ rpmname }} service
service: name={{ rpmname }} state=started
tags: start{{ rpmname }}
 
handlers:
- name: reload
service: name={{ rpmname }} state=restarted
로그인 후 복사

使用:

ansible-playbook nginx.yml -e rpmname=keepalived
ansible-playbook nginx.yml --extra-vars rpmname=keepalived
로그인 후 복사
  • 在playbook中定义变量
##在playbook中定义变量如下:
vars:
- var1: value1
- var2: value2
로그인 후 복사

使用:

---
- hosts: web
remote_user: root
vars:
- rpmname: keepalived
tasks:
- name: install {{ rpmname }}
yum: name={{ rpmname }} state=present
- name: copy {{ rpmname }}.conf
copy: src=/tmp/{{ rpmname }}.conf dest=/etc/{{ rpmname }}/{{ rpmname }}.conf backup=yes
notify: reload
tags: reload{{ rpmname }}
- name: start {{ rpmname }} service
service: name={{ rpmname }} state=started
tags: start{{ rpmname }}
 
handlers:
- name: reload
service: name={{ rpmname }} state=restarted
로그인 후 복사

3、通过roles传递变量

下面介绍roles会使用roles传递变量,小伙伴可以翻到下面看详解讲解。

4、 Host Inventory

可以在主机清单中定义,方法如下:

#向不同的主机传递不同的变量
IP/HOSTNAME varaiable=value var2=value2
 
#向组中的主机传递相同的变量
[groupname:vars]
variable=value
로그인 후 복사

3)流程控制

1、用when 来表示的条件判断

- hosts: web
remote_user: root#代表用root用户执行,默认是root,可以省略
tasks:
- name: createfile
copy: content="test3" dest=/opt/p1.yml
when: a=='3'
- name: createfile
copy: content="test4" dest=/opt/p1.yml
when: a=='4'
로그인 후 복사

如果a"3",就将“test3”,写入到web组下被管控机的/opt/p1.yml中,
如果a"4",就将“test4”,写入到web组下被管控机的/opt/p1.yml中。

执行

# 语法校验
ansible-playbook--syntax-check p1.yml

#执行
ansible-playbook -e 'a="3"' p1.yml
로그인 후 복사

2、标签(只执行配置文件中的一个任务)

- hosts: web
tasks:
- name: installnginx
yum: name=nginx
- name: copyfile
copy: src=/etc/nginx/nginx.conf dest=/etc/nginx/nginx.conf
tags: copyfile
- name: start
service: name=nginx static=restarted
로그인 후 복사

执行

# 语法校验
ansible-playbook--syntax-check p2.yml

#执行
ansible-playbook -t copyfile p2.yml 
로그인 후 복사

3、循环 with_items

创建三个用户

- hosts: web
tasks:
- name: createruser
user: name={{ item }}
with_items:
- shy1
- shy2
- shy3
- name: creategroup
group: name={{ item }}
with_items:
- group1
- group2
- group3 
로그인 후 복사

执行

#语法校验
ansible-playbook--syntax-check p3.yml

#执行
ansible-playbook p3.yml 
로그인 후 복사

4、循环嵌套(字典)

用户shy1的属组是group1,用户shy2的属组是group2,用户shy3的属组是group3

- hosts: web
tasks:
- name: creategroup
group: name={{item}}
with_items:
- group3
- group4
- group5
- name: createuser
user: name={{item.user}} group={{item.group}}
with_items:
- {'user': shy3,'group': group3}
- {'user': shy4,'group': group4}
- {'user': shy5,'group': group5}
로그인 후 복사

执行

#语法校验
ansible-playbook--syntax-check p4.yml

#执行
ansible-playbook p4.yml 
로그인 후 복사

4)模板 templates

  • 模板是一个文本文件,嵌套有脚本(使用模板编程语言编写)
  • Jinja2是python的一种模板语言,以Django的模板语言为原本

该模板支持:

字符串:使用单引号或双引号;
数字:整数,浮点数;
列表:[item1, item2, ...]
元组:(item1, item2, ...)
字典:{key1:value1, key2:value2, ...}
布尔型:true/false
算术运算:
+, -, *, /, //, %, **
比较操作:
==, !=, >, >=, <, <=
逻辑运算:
and, or, not
로그인 후 복사
  • 通常模板都是通过引用变量来运用的

【示例】

1、定义模板

usernginx; #设置nginx服务的系统使用用户
worker_processes{{ ansible_processor_vcpus }}; #工作进程数

error_log/var/log/nginx/error.log warn; #nginx的错误日志
pid/var/run/nginx.pid; #nginx启动时候的pid

events {
worker_connections1024; #每个进程允许的最大连接数
}

http { #http请求配置,一个http可以包含多个server

#定义 Content-Type
include /etc/nginx/mime.types;
default_typeapplication/octet-stream;

#日志格式 此处main与access_log中的main对应
#$remote_addr:客户端地址
#$remote_user:http客户端请求nginx认证的用户名,默认不开启认证模块,不会记录
#$timelocal:nginx的时间
#$request:请求method + 路由 + http协议版本
#status:http reponse 状态码
#body_bytes_sent:response body的大小
#$http_referer:referer头信息参数,表示上级页面
#$http_user_agent:user-agent头信息参数,客户端信息
#$http_x_forwarded_for:x-forwarded-for头信息参数
log_formatmain'$http_user_agent' '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

#访问日志,后面的main表示使用log_format中的main格式记录到access.log中
access_log/var/log/nginx/access.logmain;

#nginx的一大优势,高效率文件传输
sendfileon;
#tcp_nopush on;

#客户端与服务端的超时时间,单位秒
keepalive_timeout65;

#gzipon;
server { #http服务,一个server可以配置多个location
listen {{ nginxport }}; #服务监听端口
server_namelocalhost; #主机名、域名

#charset koi8-r;
#access_log/var/log/nginx/host.access.logmain;

location / {
root /usr/share/nginx/html; #页面存放目录
indexindex.html index.htm; #默认页面
}

#error_page404/404.html;

# 将500 502 503 504的错误页面重定向到 /50x.html
error_page 500 502 503 504/50x.html;
location = /50x.html { #匹配error_page指定的页面路径
root /usr/share/nginx/html; #页面存放的目录
}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
#proxy_pass http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
#root html;
#fastcgi_pass 127.0.0.1:9000;
#fastcgi_indexindex.php;
#fastcgi_paramSCRIPT_FILENAME/scripts$fastcgi_script_name;
#includefastcgi_params;
#}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
#denyall;
#}
}
include /etc/nginx/conf.d/*.conf;
}
로그인 후 복사
로그인 후 복사

2、定义yaml编排

---
- hosts: web
remote_user: root
vars:
- rpmname: nginx
- nginxport: 8088
tasks:
- name: install {{ rpmname }}
yum: name={{ rpmname }} state=present
- name: copy {{ rpmname }}.conf
copy: src=/tmp/{{ rpmname }}.conf dest=/etc/{{ rpmname }}/{{ rpmname }}.conf backup=yes
notify: reload
tags: reload{{ rpmname }}
- name: start {{ rpmname }} service
service: name={{ rpmname }} state=started
tags: start{{ rpmname }}
 
handlers:
- name: reload
service: name={{ rpmname }} state=restarted
로그인 후 복사

使用

##使用reloadnginx标签,重新加载剧本
로그인 후 복사

copy与template的区别

  • copy模块不替代参数,template模块替代参数
  • template的参数几乎与copy的参数完全相同

5)handlers(触发事件)

notify:触发
handlers:触发的动作
로그인 후 복사

使用上场景:修改配置文件时

【示例】 正常情况时handlers是不会执行的

- hosts: web
tasks:
- name: installredis
yum: name=redis
- name: copyfile
template: src=redis.conf dest=/etc/redis.conf
tags: copyfile
notify: restart
- name: start
service: name=redis state=started
handlers:
- name: restart
service: name=redis
로그인 후 복사

执行

ansible-playbook -t copyfile p6.yml
로그인 후 복사

6)roles

1、roles介绍与优势

一般情况下将roles写在/etc/ansible/roles中,也可以写在其他任意位置(写在其他位置要自己手动建立一个roles文件夹)

  • 对于以上所有方式有个缺点就是无法实现同时部署web、database、keepalived等不同服务或者不同服务器组合不同的应用就需要写多个yaml文件,很难实现灵活的调用
  • roles用于层次性,结构化地组织playbook。roles能够根据层次结果自动装载变量文件、tasks以及handlers等。
  • 要使用roles只需要在playbook中使用include指令即可。
  • 简单来讲,roles就是通过分别将变量(vars)、文件(files)、任务(tasks)、模块(modules)以及处理器(handlers)放置于单独的目录中,并且可以便捷的include它们地一种机制。
  • 角色一般用于基于主机构建服务的场景中,但是也可以用于构建守护进程等场景中。4

2、目录结构

创建目录

mkdir -pv ./{nginx,mysql,httpd}/{files,templates,vars,tasks,handlers,meta,default}
로그인 후 복사
로그인 후 복사

Ansible Playbook 讲解与实战操作

  • roles/
  • mysql/:mysql服务的yml文件
  • httpd/:apached服务的yml文件
  • nginx/:nginx服务的yml文件
  • files/:存储由copy或者script等模块调用的文件或者脚本;
  • tasks/:此目录中至少应该有一个名为main.yml的文件,用于定义各个task;其他文件需要由main.yml进行包含调用;
  • handlers/:此目录中至少应该有一个名为main.yml的文件,用于定义各个handler;其他文件需要由main.yml进行包含调用;
  • vars/:此目录至少应该有一个名为main,yml的文件,用于定义各个variable;其他的文件需要由main.yml进行包含调用;
  • templates/:存储由templates模块调用的模板文件;
  • meta/:此目录中至少应该有一个名为main.yml的文件,定义当前角色的特殊设定以及依赖关系,其他文件需要由main.yml进行包含调用;
  • default/:此目录至少应该有一个名为main.yml的文件,用于设定默认变量;

3、实战操作

【1】创建目录

mkdir -pv ./{nginx,mysql,httpd}/{files,templates,vars,tasks,handlers,meta,default}
로그인 후 복사
로그인 후 복사

【2】定义配置文件

先下载nginx rpm部署包

# 下载地址:http://nginx.org/packages/centos/7/x86_64/RPMS/
 wget http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.18.0-1.el7.ngx.x86_64.rpm -O nginx/files/nginx-1.18.0-1.el7.ngx.x86_64.rpm
로그인 후 복사
  • nginx/tasks/main.yml
- name: cp
copy: src=nginx-1.18.0-1.el7.ngx.x86_64.rpm dest=/tmp/nginx-1.18.0-1.el7.ngx.x86_64.rpm
- name: install
yum: name=/tmp/nginx-1.18.0-1.el7.ngx.x86_64.rpm state=latest
- name: conf
template: src=nginx.conf.j2 dest=/etc/nginx/nginx.conf
tags: nginxconf
notify: new conf to reload
- name: start service
service: name=nginx state=started enabled=true
로그인 후 복사
  • nginx/templates/nginx.conf.j2
usernginx; #设置nginx服务的系统使用用户
worker_processes{{ ansible_processor_vcpus }}; #工作进程数

error_log/var/log/nginx/error.log warn; #nginx的错误日志
pid/var/run/nginx.pid; #nginx启动时候的pid

events {
worker_connections1024; #每个进程允许的最大连接数
}

http { #http请求配置,一个http可以包含多个server

#定义 Content-Type
include /etc/nginx/mime.types;
default_typeapplication/octet-stream;

#日志格式 此处main与access_log中的main对应
#$remote_addr:客户端地址
#$remote_user:http客户端请求nginx认证的用户名,默认不开启认证模块,不会记录
#$timelocal:nginx的时间
#$request:请求method + 路由 + http协议版本
#status:http reponse 状态码
#body_bytes_sent:response body的大小
#$http_referer:referer头信息参数,表示上级页面
#$http_user_agent:user-agent头信息参数,客户端信息
#$http_x_forwarded_for:x-forwarded-for头信息参数
log_formatmain'$http_user_agent' '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

#访问日志,后面的main表示使用log_format中的main格式记录到access.log中
access_log/var/log/nginx/access.logmain;

#nginx的一大优势,高效率文件传输
sendfileon;
#tcp_nopush on;

#客户端与服务端的超时时间,单位秒
keepalive_timeout65;

#gzipon;
server { #http服务,一个server可以配置多个location
listen {{ nginxport }}; #服务监听端口
server_namelocalhost; #主机名、域名

#charset koi8-r;
#access_log/var/log/nginx/host.access.logmain;

location / {
root /usr/share/nginx/html; #页面存放目录
indexindex.html index.htm; #默认页面
}

#error_page404/404.html;

# 将500 502 503 504的错误页面重定向到 /50x.html
error_page 500 502 503 504/50x.html;
location = /50x.html { #匹配error_page指定的页面路径
root /usr/share/nginx/html; #页面存放的目录
}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
#proxy_pass http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
#root html;
#fastcgi_pass 127.0.0.1:9000;
#fastcgi_indexindex.php;
#fastcgi_paramSCRIPT_FILENAME/scripts$fastcgi_script_name;
#includefastcgi_params;
#}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
#denyall;
#}
}
include /etc/nginx/conf.d/*.conf;
}
로그인 후 복사
로그인 후 복사
  • nginx/vars/main.yml
nginxport: 9999
로그인 후 복사
  • nginx/handlers/main.yml
- name: new conf to reload
service: name=nginx state=restarted
로그인 후 복사
  • 定义剧本文件(roles.yml
- hosts: web
remote_user: root
roles:
- nginx
로그인 후 복사

最后的目录结构如下:

Ansible Playbook 讲解与实战操作

执行

ansible-playbook roles.yml
로그인 후 복사

Ansible Playbook 讲解与实战操作


위 내용은 Ansible Playbook 설명 및 실제 작동의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Python을 사용하여 목록에서 대괄호를 제거하는 방법 Python을 사용하여 목록에서 대괄호를 제거하는 방법 Sep 05, 2023 pm 07:05 PM

Python은 필요에 따라 다양한 목적으로 사용할 수 있는 매우 유용한 소프트웨어입니다. Python은 웹 개발, 데이터 과학, 기계 학습 및 자동화가 필요한 기타 여러 분야에서 사용할 수 있습니다. 여기에는 이러한 작업을 수행하는 데 도움이 되는 다양한 기능이 있습니다. Python 목록은 Python의 매우 유용한 기능 중 하나입니다. 이름에서 알 수 있듯이 목록에는 저장하려는 모든 데이터가 포함됩니다. 기본적으로 다양한 유형의 정보 집합입니다. 대괄호를 제거하는 다양한 방법 사용자는 목록 항목이 대괄호 안에 표시되는 상황을 여러 번 접하게 됩니다. 이 문서에서는 목록을 더 잘 볼 수 있도록 이러한 괄호를 제거하는 방법을 자세히 설명합니다. 문자열 및 대체 함수에서 괄호를 제거하는 가장 쉬운 방법 중 하나는 다음과 같습니다.

Python의 count() 함수를 사용하여 목록의 요소 수를 계산하는 방법 Python의 count() 함수를 사용하여 목록의 요소 수를 계산하는 방법 Nov 18, 2023 pm 02:53 PM

Python의 count() 함수를 사용하여 목록의 요소 수를 계산하려면 특정 코드 예제가 필요합니다. 강력하고 배우기 쉬운 프로그래밍 언어인 Python은 다양한 데이터 구조를 처리하기 위한 많은 내장 함수를 제공합니다. 그 중 하나는 목록의 요소 수를 계산하는 데 사용할 수 있는 count() 함수입니다. 이번 글에서는 count() 함수의 사용법을 자세히 설명하고 구체적인 코드 예시를 제공하겠습니다. count() 함수는 Python의 내장 함수로, 특정 값을 계산하는 데 사용됩니다.

iPhone의 iOS 17 미리 알림 앱에서 쇼핑 목록을 만드는 방법 iPhone의 iOS 17 미리 알림 앱에서 쇼핑 목록을 만드는 방법 Sep 21, 2023 pm 06:41 PM

iOS17의 iPhone에서 GroceryList를 만드는 방법 미리 알림 앱에서 GroceryList를 만드는 것은 매우 간단합니다. 목록을 추가하고 항목으로 채우면 됩니다. 앱은 자동으로 항목을 카테고리별로 분류하며, 파트너나 플랫 파트너와 협력하여 매장에서 구매해야 할 항목의 목록을 만들 수도 있습니다. 이를 위한 전체 단계는 다음과 같습니다. 1단계: iCloud 미리 알림 켜기 이상하게 들리겠지만 Apple에서는 iOS17에서 GroceryList를 생성하려면 iCloud에서 미리 알림을 활성화해야 한다고 말합니다. 단계는 다음과 같습니다. iPhone의 설정 앱으로 이동하여 [사용자 이름]을 탭하세요. 다음으로 i를 선택하세요.

식료품 목록을 만드는 방법: iPhone용 미리 알림 앱 사용 식료품 목록을 만드는 방법: iPhone용 미리 알림 앱 사용 Dec 01, 2023 pm 03:37 PM

iOS 17에서 Apple은 식료품을 쇼핑할 때 도움이 되도록 미리 알림 앱에 편리한 작은 목록 기능을 추가했습니다. 사용 방법을 알아보고 매장 방문 시간을 단축하려면 계속 읽어보세요. 새로운 '식료품' 목록 유형(미국 외 지역에서는 '쇼핑')을 사용하여 목록을 만들면 다양한 음식과 식료품을 입력하고 카테고리별로 자동으로 정리할 수 있습니다. 이 정리를 통해 식료품점이나 쇼핑 중에 필요한 것을 더 쉽게 찾을 수 있습니다. 알림에서 사용할 수 있는 카테고리 유형에는 농산물, 빵 및 시리얼, 냉동 식품, 스낵 및 사탕, 육류, 유제품, 계란 및 치즈, 구운 식품, 구운 식품, 가정용품, 개인 관리 및 웰빙, 와인, 맥주 및 증류주가 포함됩니다. iOS17에서는 다음이 생성됩니다.

Java 목록에 null 값을 삽입할 수 있나요? Java 목록에 null 값을 삽입할 수 있나요? Aug 20, 2023 pm 07:01 PM

해결 방법예, add() 메서드를 사용하여 쉽게 Null 값을 삽입할 수 있습니다. List 구현이 Null을 지원하지 않는 경우에는NullPointerException이 발생합니다. 구문booleanadd(Ee) 지정된 요소를 이 목록의 끝에 추가합니다. 유형 매개변수 E - 요소의 런타임 유형. 매개변수 e - 이 목록에 추가될 요소

Python의 목록에서 Del과 Remove()의 차이점은 무엇입니까? Python의 목록에서 Del과 Remove()의 차이점은 무엇입니까? Sep 12, 2023 pm 04:25 PM

차이점을 논의하기 전에 먼저 Python 목록에 Del과 Remove()가 무엇인지 이해하겠습니다. Python 목록의 Del 키워드 Python의 del 키워드는 목록에서 하나 이상의 요소를 삭제하는 데 사용됩니다. 모든 요소를 ​​삭제할 수도 있습니다. 즉, 전체 목록을 삭제할 수도 있습니다. del 키워드를 사용하여 Python 목록에서 요소를 삭제하는 예 #CreateaListmyList=["Toyota","Benz","Audi","Bentley"]print("List="

Python을 사용하여 목록에서 여러 디렉터리 만들기 Python을 사용하여 목록에서 여러 디렉터리 만들기 Sep 08, 2023 am 08:21 AM

Python은 단순성과 다양성으로 인해 다양한 응용 프로그램에서 가장 인기 있는 프로그래밍 언어 중 하나가 되었습니다. 숙련된 개발자이든 이제 막 코딩 여정을 시작하든 관계없이 Python은 복잡한 작업을 관리하기 쉽게 만드는 다양한 기능과 라이브러리를 제공합니다. 이 기사에서는 목록을 기반으로 여러 디렉터리를 생성하는 프로세스를 자동화하여 Python이 도움을 줄 수 있는 실제 시나리오를 살펴보겠습니다. Python에 내장된 모듈과 기술의 강력한 기능을 활용하여 수동 개입 없이도 이 작업을 효율적으로 처리할 수 있습니다. 이 튜토리얼에서는 여러 디렉터리를 만드는 문제를 자세히 살펴보고 Python을 사용하여 이 문제를 해결하는 다양한 방법을 제공합니다. 이 기사가 끝날 때쯤이면 우리의 목표는 당신을 위한 것입니다.

Python의 reverse() 함수를 사용하여 목록을 뒤집습니다. Python의 reverse() 함수를 사용하여 목록을 뒤집습니다. Nov 18, 2023 pm 02:14 PM

Python의 reverse() 함수를 사용하여 목록을 반전하려면 특정 코드 예제가 필요합니다. Python에서는 프로그래밍 시 목록을 조작해야 하는 경우가 많으며 이때 Python에 내장된 reverse()를 사용할 수 있습니다. 구현하는 기능입니다. reverse() 함수의 기능은 목록에 있는 요소의 순서를 바꾸는 것입니다. 즉, 목록의 첫 번째 요소가 마지막 요소가 되고, 두 번째 요소가 마지막에서 두 번째 요소가 되는 식입니다. Py를 사용하는 방법은 다음과 같습니다.

See all articles