Inhaltsverzeichnis
1. Übersicht
1. Das YAML-Format lautet wie folgt: Die erste Zeile der Datei sollte mit „---“ (drei Bindestriche) beginnen und den Anfang der YAML-Datei angeben.
1. Fakten: Sie können es direkt aufrufen.
setup
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、实战操作
Heim Betrieb und Instandhaltung Sicherheit Erklärung und praktische Bedienung des Ansible Playbooks

Erklärung und praktische Bedienung des Ansible Playbooks

Jun 09, 2023 pm 08:58 PM
列表

1. Übersicht

  • Playbook ist eine völlig andere Art der Verwendung von Ansible als Ad-hoc, ähnlich der Statusdatei von Saltstack. Ad-hoc kann nicht dauerhaft verwendet werden, Playbook kann dauerhaft verwendet werden.
  • Playbook ist eine Liste, die aus einem oder mehreren Plays besteht. Die Hauptfunktion von Play besteht darin, die zuvor in einer Gruppe gruppierten Hosts in Rollen zu kleiden, die zuvor durch Aufgaben in Ansible definiert wurden.
  • Grundsätzlich ist die sogenannte Task nichts anderes als ein Modul, das Ansible aufruft. Durch die Organisation mehrerer Spielzüge in einem Spielbuch können diese kombiniert werden, um eine bestimmte Aufgabe nach einem vorab festgelegten Mechanismus abzuschließen.

Referenzdokument: https://ansible-tran.readthedocs.io/en/latest/docs/playbooks.html

Für die grundlegende Einführung und Umgebungsbereitstellung von Ansible können Sie sich auf meinen Artikel beziehen: Ansible-Einführung und praktische Betriebsdemonstration


Ansible Playbook 讲解与实战操作


2. Playbook-Kernelemente

  • HostsListe der ausgeführten Remote-Hosts
  • Aufgaben Aufgabensatz
  • VarniablesEingebaute Variablen oder benutzerdefinierte Variablen werden im Playbook aufgerufen
  • TemplatesTemplates, also Dateien mit Template-Syntax, wie Konfigurationsdateien usw.
  • Handler werden in Kombination mit Notity verwendet. Durch bestimmte Bedingungen ausgelöste Vorgänge werden nur ausgeführt, wenn die Bedingungen erfüllt sind. Andernfalls werden sie nicht ausgeführt.
  • Tags Tags geben eine bestimmte auszuführende Aufgabe an Wird verwendet, um einen Teil des Codes im Playbook auszuwählen und auszuführen.
  • 3. Playbook-Syntax (yaml)

    Playbook verwendet das
  • yaml-Syntaxformat, das Suffix kann yaml oder yml sein.
  • YAML ( /ˈjæməl/ ) verweist auf viele andere Sprachen, darunter: XML, C-Sprache, Python, Perl und das E-Mail-Format RFC2822. Clark Evans hat diese Sprache erstmals im Mai 2001 veröffentlicht, und Ingy döt Net und Oren Ben-Kiki sind es auch Mitgestalter dieser Sprache.
  • Das YAML-Format ist ein JSON-ähnliches Dateiformat. YAML wird zum Schreiben von Dateikonfigurationen verwendet und JSON wird hauptsächlich für Entwicklung und Design verwendet.
  • 1) YAML-Einführung

1. Das YAML-Format lautet wie folgt: Die erste Zeile der Datei sollte mit „---“ (drei Bindestriche) beginnen und den Anfang der YAML-Datei angeben.

    In derselben Zeile gibt der Inhalt nach # einen Kommentar an, ähnlich wie bei Shell, Python und Ruby.
  • Listenelemente in YAML beginnen mit „-“ und werden von einem Leerzeichen gefolgt. Was folgt, ist der Elementinhalt.
  • Elemente in derselben Liste sollten dieselbe Einrückung beibehalten, andernfalls wird dies als Fehler behandelt.
  • Play-Objekte wie Hosts, Variablen, Rollen, Aufgaben usw. werden ausgedrückt, indem die Schlüsselwerte durch „:“ getrennt werden und nach dem „:“ ein Leerzeichen eingefügt werden muss.
  • 2. Erklärung der Yaml-Konfigurationsdatei für Playbooks
  • 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:任务,在特定条件下触发;接受到其他任务的通知时被触发;
    Nach dem Login kopieren
    3. Beispiel
    ---
    - 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
    Nach dem Login kopieren
  • 2) Variablenvariablen
Variablenvariablen haben vier Definitionsmethoden. Wie folgt:

1. Fakten: Sie können es direkt aufrufen.

Es gibt ein Setup-Modul in Ansible. Dieses Modul ist hauptsächlich eine Systeminformation des Knotens selbst, BIOS-Informationen, Netzwerk , Festplatte und andere Informationen. Die Variablen hier können die Fakten der Faktenkomponente auch direkt aufrufen. Wir können das Modul

setup

verwenden, um sie abzurufen, und sie dann direkt in unser Skript einfügen, um sie aufzurufen.

ansible web -m setup
Nach dem Login kopieren

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
Nach dem Login kopieren

搜索

ansible web -m setup -a 'filter=*processor*'
Nach dem Login kopieren

Ansible Playbook 讲解与实战操作

2、用户自定义变量

自定义变量有两种方式

  • 通过命令行传入
ansible-playbook命令行中的 -e VARS,--extra-vars VARS,这样就可以直接把自定义的变量传入
Nach dem Login kopieren

使用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
Nach dem Login kopieren

使用:

ansible-playbook nginx.yml -e rpmname=keepalived
ansible-playbook nginx.yml --extra-vars rpmname=keepalived
Nach dem Login kopieren
  • 在playbook中定义变量
##在playbook中定义变量如下:
vars:
- var1: value1
- var2: value2
Nach dem Login kopieren

使用:

---
- 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
Nach dem Login kopieren

3、通过roles传递变量

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

4、 Host Inventory

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

#向不同的主机传递不同的变量
IP/HOSTNAME varaiable=value var2=value2
 
#向组中的主机传递相同的变量
[groupname:vars]
variable=value
Nach dem Login kopieren

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'
Nach dem Login kopieren

如果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
Nach dem Login kopieren

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
Nach dem Login kopieren

执行

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

#执行
ansible-playbook -t copyfile p2.yml 
Nach dem Login kopieren

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 
Nach dem Login kopieren

执行

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

#执行
ansible-playbook p3.yml 
Nach dem Login kopieren

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}
Nach dem Login kopieren

执行

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

#执行
ansible-playbook p4.yml 
Nach dem Login kopieren

4)模板 templates

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

该模板支持:

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

【示例】

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;
}
Nach dem Login kopieren
Nach dem Login kopieren

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
Nach dem Login kopieren

使用

##使用reloadnginx标签,重新加载剧本
Nach dem Login kopieren

copy与template的区别

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

5)handlers(触发事件)

notify:触发
handlers:触发的动作
Nach dem Login kopieren

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

【示例】 正常情况时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
Nach dem Login kopieren

执行

ansible-playbook -t copyfile p6.yml
Nach dem Login kopieren

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}
Nach dem Login kopieren
Nach dem Login kopieren

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}
Nach dem Login kopieren
Nach dem Login kopieren

【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
Nach dem Login kopieren
  • 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
Nach dem Login kopieren
  • 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;
}
Nach dem Login kopieren
Nach dem Login kopieren
  • nginx/vars/main.yml
nginxport: 9999
Nach dem Login kopieren
  • nginx/handlers/main.yml
- name: new conf to reload
service: name=nginx state=restarted
Nach dem Login kopieren
  • 定义剧本文件(roles.yml
- hosts: web
remote_user: root
roles:
- nginx
Nach dem Login kopieren

最后的目录结构如下:

Ansible Playbook 讲解与实战操作

执行

ansible-playbook roles.yml
Nach dem Login kopieren

Ansible Playbook 讲解与实战操作


Das obige ist der detaillierte Inhalt vonErklärung und praktische Bedienung des Ansible Playbooks. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So entfernen Sie eckige Klammern mit Python aus einer Liste So entfernen Sie eckige Klammern mit Python aus einer Liste Sep 05, 2023 pm 07:05 PM

Python ist eine sehr nützliche Software, die je nach Bedarf für viele verschiedene Zwecke eingesetzt werden kann. Python kann in der Webentwicklung, Datenwissenschaft, maschinellem Lernen und vielen anderen Bereichen eingesetzt werden, die eine Automatisierung erfordern. Es verfügt über viele verschiedene Funktionen, die uns bei der Ausführung dieser Aufgaben helfen. Python-Listen sind eine der sehr nützlichen Funktionen von Python. Wie der Name schon sagt, enthält eine Liste alle Daten, die Sie speichern möchten. Es handelt sich im Grunde um eine Reihe verschiedener Arten von Informationen. Verschiedene Möglichkeiten, eckige Klammern zu entfernen Häufig stoßen Benutzer auf die Situation, dass Listenelemente in eckigen Klammern angezeigt werden. In diesem Artikel erfahren Sie, wie Sie diese Klammern entfernen, um Ihren Eintrag besser sehen zu können. Eine der einfachsten Möglichkeiten, Klammern in Zeichenfolgen und Ersetzungsfunktionen zu entfernen, finden Sie in

So zählen Sie die Anzahl der Elemente in einer Liste mit der Funktion count() von Python So zählen Sie die Anzahl der Elemente in einer Liste mit der Funktion count() von Python Nov 18, 2023 pm 02:53 PM

Um die Anzahl der Elemente in einer Liste mit der Funktion count() von Python zu zählen, sind bestimmte Codebeispiele erforderlich. Als leistungsstarke und leicht zu erlernende Programmiersprache bietet Python viele integrierte Funktionen zur Verarbeitung unterschiedlicher Datenstrukturen. Eine davon ist die Funktion count(), mit der sich die Anzahl der Elemente in einer Liste zählen lässt. In diesem Artikel erklären wir die Verwendung der count()-Funktion im Detail und stellen spezifische Codebeispiele bereit. Die Funktion count() ist eine in Python integrierte Funktion, mit der ein bestimmter Wert berechnet wird

So erstellen Sie eine Einkaufsliste in der iOS 17-Erinnerungs-App auf dem iPhone So erstellen Sie eine Einkaufsliste in der iOS 17-Erinnerungs-App auf dem iPhone Sep 21, 2023 pm 06:41 PM

So erstellen Sie eine Einkaufsliste auf dem iPhone in iOS17. Das Erstellen einer Einkaufsliste in der Erinnerungen-App ist sehr einfach. Sie fügen einfach eine Liste hinzu und füllen sie mit Ihren Artikeln. Die App sortiert Ihre Artikel automatisch in Kategorien und Sie können sogar mit Ihrem Partner oder Ihrer Wohnungspartnerin zusammenarbeiten, um eine Liste der Dinge zu erstellen, die Sie im Geschäft kaufen müssen. Hier sind die vollständigen Schritte dazu: Schritt 1: iCloud-Erinnerungen aktivieren So seltsam es auch klingen mag, Apple sagt, dass Sie Erinnerungen von iCloud aktivieren müssen, um eine Einkaufsliste unter iOS17 zu erstellen. Hier sind die Schritte dafür: Gehen Sie zur App „Einstellungen“ auf Ihrem iPhone und tippen Sie auf [Ihr Name]. Wählen Sie als Nächstes i aus

So erstellen Sie eine Einkaufsliste: Verwenden Sie die Erinnerungen-App für das iPhone So erstellen Sie eine Einkaufsliste: Verwenden Sie die Erinnerungen-App für das iPhone Dec 01, 2023 pm 03:37 PM

In iOS 17 hat Apple der Erinnerungs-App eine praktische kleine Listenfunktion hinzugefügt, die Ihnen beim Lebensmitteleinkauf hilft. Lesen Sie weiter, um zu erfahren, wie Sie es verwenden und Ihren Weg zum Geschäft verkürzen. Wenn Sie eine Liste mit dem neuen Listentyp „Lebensmittel“ (außerhalb der USA „Shopping“ genannt) erstellen, können Sie eine Vielzahl von Lebensmitteln und Lebensmitteln eingeben und diese automatisch nach Kategorien organisieren lassen. Diese Organisation macht es einfacher, im Supermarkt oder beim Einkaufen zu finden, was Sie brauchen. Zu den in Warnungen verfügbaren Kategorietypen gehören Obst und Gemüse, Brot und Getreide, Tiefkühlkost, Snacks und Süßigkeiten, Fleisch, Milchprodukte, Eier und Käse, Backwaren, Backwaren, Haushaltsprodukte, Körperpflege und Wellness sowie Wein, Bier und Spirituosen. Folgendes wird in iOS17 erstellt

Können wir einen Nullwert in die Java-Liste einfügen? Können wir einen Nullwert in die Java-Liste einfügen? Aug 20, 2023 pm 07:01 PM

LösungJa, wir können den Nullwert ganz einfach mit der Methode add() einfügen. Wenn die Listenimplementierung Null nicht unterstützt, löst sie eine NullPointerException aus. Syntaxbooleanadd(Ee) Hängt das angegebene Element an das Ende dieser Liste an. Typparameter E – Der Laufzeittyp des Elements. Parameter e – Element, das an diese Liste angehängt werden soll

Was ist der Unterschied zwischen Del und remove() für Listen in Python? Was ist der Unterschied zwischen Del und remove() für Listen in Python? Sep 12, 2023 pm 04:25 PM

Bevor wir die Unterschiede besprechen, wollen wir zunächst verstehen, was Del und Remove() in Python-Listen sind. Schlüsselwort „del“ in der Python-Liste Das Schlüsselwort „del“ in Python wird verwendet, um ein oder mehrere Elemente aus einer Liste zu löschen. Wir können auch alle Elemente löschen, also die gesamte Liste löschen. Beispiel für die Verwendung des Schlüsselworts del zum Löschen von Elementen aus einer Python-Liste #CreateaListmyList=["Toyota", "Benz", "Audi", "Bentley"]print("List="

Erstellen Sie mit Python mehrere Verzeichnisse aus einer Liste Erstellen Sie mit Python mehrere Verzeichnisse aus einer Liste Sep 08, 2023 am 08:21 AM

Aufgrund seiner Einfachheit und Vielseitigkeit hat sich Python zu einer der beliebtesten Programmiersprachen für verschiedene Anwendungen entwickelt. Egal, ob Sie ein erfahrener Entwickler sind oder gerade erst mit dem Codieren beginnen, Python bietet eine breite Palette an Funktionen und Bibliotheken, die komplexe Aufgaben bewältigbar machen. In diesem Artikel untersuchen wir ein praktisches Szenario, in dem Python uns helfen kann, indem es den Prozess der Erstellung mehrerer Verzeichnisse basierend auf einer Liste automatisiert. Durch die Nutzung der Leistungsfähigkeit der in Python integrierten Module und Techniken können wir diese Aufgabe effizient und ohne manuelle Eingriffe erledigen. In diesem Tutorial befassen wir uns mit dem Problem der Erstellung mehrerer Verzeichnisse und stellen Ihnen verschiedene Möglichkeiten zur Lösung dieses Problems mit Python vor. Am Ende dieses Artikels liegt unser Ziel bei Ihnen

Die Liste der drahtlosen Win7-Netzwerke kann nicht angezeigt werden Die Liste der drahtlosen Win7-Netzwerke kann nicht angezeigt werden Dec 22, 2023 am 08:07 AM

Um vielen Menschen das mobile Arbeiten zu erleichtern, sind viele Notebooks mit drahtlosen Netzwerkfunktionen ausgestattet, aber einige Computer können die WLAN-Liste nicht anzeigen. Jetzt werde ich Ihnen zeigen, wie Sie mit diesem Problem umgehen können. Die Liste der drahtlosen Netzwerke kann in Win7 nicht angezeigt werden. 1. Klicken Sie mit der rechten Maustaste auf das Netzwerksymbol in der unteren rechten Ecke Ihres Computers und wählen Sie „Netzwerk- und Freigabecenter öffnen“. Klicken Sie nach dem Öffnen links auf „Adaptereinstellungen ändern“. Klicken Sie nach dem Öffnen mit der rechten Maustaste, um den drahtlosen Netzwerkadapter auszuwählen, und wählen Sie „Diagnose“. 3. Warten Sie auf die Diagnose. Wenn das System ein Problem diagnostiziert, beheben Sie es. 4. Nachdem die Reparatur abgeschlossen ist, können Sie die WLAN-Liste sehen.

See all articles