python3循环、字符串+linux高级指令

Python 内容:

1、while

1、语法:

while 条件:
	条件成立重复执行的代码1
	条件成立重复执行的代码2
	......
i=1
while i<=5:
    print("hello")
    i+=1

2、break和continue
用法和C语言一样

3、嵌套循环

while  条件1:
	条件1成立执行的代码
	.......
	while 条件2:
		条件2成立执行的代码
	

九九乘法表

i=1
while i<=9:
    j=1
    while j<=i:
        z=j*i
        if j==i:
            print("%d*%d=%d" %(j,i,z))
        else:
            print("%d*%d=%d" % (j, i, z), end=" ")
        j=j+1
    i=i+1
2、for循环

1、语法

for 临时变量 in 序列:
	重复执行的代码1
	重复执行的代码2
	.......

临时变量是自己定义的。
序列:一个数据内部是由多个数据组成的,这样的就是一个数据序列

打印一个字符串中的各个字符:这个字符串可以看做是一个序列,由很多个字符组成。

str1="itheima"
for i in str1:
    print(i)
3、else

1、循环都可以和else配合使用,while和for都可以,else下方缩进的代码指的是:当循环正常结束之后要执行的代码,如果不正常结束就不会执行。
不正常退出就是使用break的退出。
使用continue退出的循环是属于正常退出的,会执行else后面的代码。

2、while …else
语法:

while 条件:
	条件成立重复执行的代码
else:
	循环正常结束之后要执行的代码

break:的不正常退出的情况下,else中的代码是不执行的。continue退出的是会执行的。

i=1
while i<=5:
    if i==3:
        print("结束循环")
        break
    print("继续执行")
    i=i+1
else:
    print("执行了")

3、for…else

for 临时变量 in 序列:
	重复执行的代码
	...
else:
	循环正常结束之后要执行的代码

使用时类似的,不举例了。

4、字符串

1、一般用引号来创建字符串,单引号和双引号都可以,三引号也可以用来书写字符串,三引号单引和双引都可以,三引号书写的字符串支持回车换行,而且也是回车换行输出的:

name1='Tom'
name2="rose"
name3=''' i am tom,
					nice to meet you! '''
name3="""i am tom,
					nice to meet you! """

如果字符串中含有引号的话,有两种办法解决:
(1)如果字符串里面的是单引的话,外面字符串就用双引,否则反过来
(2)使用转义字符""

如果这样的话:
name4=' i'm tom '
第一种:
name4=" i'am tom"
第二种:
name4=' i\'m tom '

2、字符串的输出,回忆
两种办法:
(1)使用%s进行输出
(2)python3.6之后可以使用f进行格式化输出:

name="tom"
print(f'我的名字是{name}')

3、字符串的输入回忆
会用input

name=input("请输入您的名字")
print(f'您输入的名字是{name}')
#print("您输入的名字是%s",%name)

4、字符串的下标
字符串的下标是从0开始的。

str=“abcdefg”
print(str[0])

5、切片
切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。

语法:
序列[开始位置下标:结束位置下标:步长]
注意:
(1)不包括结束位置下标对应的数据,正负整数均可
(2)步长是选取间隔,正负整数均可,默认步长是1
(负值表示从后往前数,-1表示最后一个元素,-2表示倒数第二个元素;
如果步长是负值,则表示从右往左开始选。
但是如果下标开始到结束的方向和步长的方向冲突,则无法选取数据)

str="0123456789"
print(str[2:5:1])   #234
print(str[2:5:2])   #24
print(str[2:5])   #234
print(str[:5])   #01234 如果没写开始,默认从0开始
print(str[2:])   #23456789 如果不写结束,表示选取到最后
print(str[:])    #0123456789  不写开始和结束,表示的是选取所有

print(str[-4:-1:-1])  #下标开始和结束的方向与步长的方向冲突,无法选取数

6、常用操作方法(查找、修改、判断)

1、查找(查找子串在字符串中的位置或者出现的次数)

(1)find():检查某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则则返回-1
语法:

字符串序列.find(子串,开始位置下标,结束位置下标)
注意:开始位置和结束位置下标可省略,表示在整个字符串序列中查找
mystr="hello world and itcast and itheima and python"
print(mystr.find("and"))  #12
print(mystr.find("and",15,30))  #23
print(mystr.find("ands"))  #-1  子串不存在

(2)index()函数 与find()函数用法是一样的,其他都是相同的,但是当使用index查找不存在的子串的时候会报错。

mystr="hello world and itcast and itheima and python"
print(mystr.index("and"))  #12
print(mystr.index("and",15,30))  #23
print(mystr.index("ands"))  #报错了

(3)count(),查找子串出现的次数,参数和上两个方法一样。如果没出现,则返回0

mystr="hello world and itcast and itheima and python"
print(mystr.count("and"))   #3
print(mystr.count("and",15,30))  #1
print(mystr.count("ands"))  #0

(4)rfind():用法与find()一样,只不过是从右边开始查找,返回的是从右边数第一个子串的位置,但是下标还是从左往右数的。不存在仍然返回-1

mystr="hello world and itcast and itheima and python"
print(mystr.rfind("and"))  #35 ,最后一个and的a的位置就是35

(5)rindex()也是从右侧开始查找,不存在仍然报错

修改:(指的是通过函数的形式修改字符串中的数据)

(1)replace():子串替换,而且不会修改原来的字符串,会返回一个新的字符串。说明:字符串是不可变数据类型(和java一样)
语法:

字符串序列.replace(旧子串,新子串,替换次数)
注:替换次数省略不写的话,则表示替换所有的
mystr="hello world and itcast and itheima and python"
new_str=mystr.replace("and","he")
print(new_str)

mystr="hello world and itcast and itheima and python"
new_str=mystr.replace("and","he",1)
print(new_str)   #只替换了1次

mystr="hello world and itcast and itheima and python"
new_str=mystr.replace("and","he",10)
print(new_str)  #因为原字符串中没有10次,所以也会都替换了

(2)split():字符串的分割使用的,会丢失分隔符号
语法:

字符串序列.split(分割字符,num)
num是分割字符出现的次数。,即将返回数据的个数是num+1个,返回的是一个列表的形式
mystr="hello world and itcast and itheima and python"
list=mystr.split("and")
print(list)  # ['hello world ', ' itcast ', ' itheima ', ' python'] 分割成了4个数据(y因为三个and),且分割后的数据没有and,说明会丢失分隔符号。


mystr="hello world and itcast and itheima and python"
list=mystr.split("and",2)
print(list) # ['hello world ', ' itcast ', ' itheima and python'],返回的是三个数据

(3)join():合并列表中的字符串数据为一个大字符串
语法:

字符或子串.join(多字符串组成的序列)
list=["aa","bb","cc"]
#想让数据的连接方式是 aa...bb...cc
new_str="...".join(list)
print(new_str)

(4)capitalize():将字符串第一个字符转换成大写,其他字符都是小写的,即使其他字符原来是大写的,最后也都变成小写的。

mystr="hello world and itcast and itheima and Python"
new_str=mystr.capitalize()
print(new_str)  # Hello world and itcast and itheima and python

(5)titile():将字符串中每个单词的首字母都变成大写的

mystr="hello world and itcast and itheima and Python"
new_str=mystr.title()
print(new_str) # Hello World And Itcast And Itheima And Python

(6)lower():想字符串中大写转成小写
用法类似
(7)upper():将字符串中小写转换成大写的
用法类似

(8)lstrip():删除字符串左侧空格字符

mystr="    hello world and itcast and itheima and Python"
new_str=mystr.lstrip()
print(new_str)  # hello world and itcast and itheima and Python

(9)rstrip():删除字符串右侧空表字符
用法类似
(10)strip():删除字符串两侧空白字符
用法类似

(11)ljust():返回一个原字符串左对齐,并使用指定字符(默认空格)填充至对应长度的新字符串
语法:

字符串序列.ljust(长度,填充字符)
mystr="hello"
print(mystr.ljust(10,"."))  #  hello.....

(12)rjust():右对齐,用法类似
(13)center():居中对齐,用法类似

判断:判断真假,返回结果为布尔类型

(1)startswith():检查字符串是否以指定子串开头,是则返回true,否则返回false。还可以设置起始和结束下标
语法:

字符串序列.startswith(子串,开始位置下标,结束位置下标)
mystr="hello world and itcast and itheima and Python"
print(mystr.startswith("hello"))   #True

(2)endswith():判断字符串是否以某个子串结尾,用法一样

(3)isalpha():如果字符串中至少包含一个字符(即非空)并且所有字符都是字母则返回True,否则返回False

str1="hello"
str2="hello123"
print(str1.isalpha())  #True
print(str2.isalpha())  #False

(4)isdigit():如果字符串中只包含数字则返回True,否则返回False


str1="hello"
str2="123 12"
print(str1.isdigit())  #False
print(str2.isdigit())  #False  空格属于字符

Linux高级指令部分

1、hostname指令
作用:操作服务器的主机名(主要是读取)
主机名:重装系统之后都会产生一个主机名,就像人的名字一样
语法1:#hostname 输出完整的主机名

2、id指令
作用:查看一个用户的基本信息,包括用户id,用户组id,附加组id等,如果该指令不指定用户默认当前用户
语法:#id

3、、whoami指令
作用:我是谁,显示当前登录的用户名。一般用于shell脚本,用于获取当前操作的用户名方便记录日志。
语法:#whoami

4、ps -ef指令(重要)
指令ps:用于查看服务器的进程信息
选项含义:
-e:表示列出全部的进程
-f:表示显示全部的列

列含义:
UID,该进程执行的用户id
PID,进程id
PPID,该进程的父级进程id

案例(%100使用的命令)在ps的结果中过滤出想要查看的进行的状态
#ps -ef | grep 进程名称

5、top指令(重点)
作用:查看服务器的进程占用的资源
语法:

进入命令:#top  (动态的显示)
退出命令:按q键(不建议是使用ctrl+c)

表头含义:
S:表示进程的状态(sleeping,其中S表示睡眠,R表示运行)
%CPU:表示CPU的占用百分比
%MEM:表示内存占用的百分比
COMMAND:进程的名称或者路径

在运行top的时候,方便快捷键:
M:表示昂结果按照内存(MEM)从高到低降序排列
P:表示将结果按照CPU使用率从高到低降序排列
1(数字):当服务器拥有多个CPU时,是否展开显示各个cpu的详细信息

6、du -sh指令
作用:查看目录的真实大小(与ls -lh显示的区别是:ls -lh只显示这个目录的大小,不包含里面的东西;而du -sh是包含里面的东西的总的大小)
语法:#du -sh 目录路径
参数含义:
-s :只显示汇总的大小
-h:表示以较高可读性的形式进行显示(会按照合适的单位显示)

7、find指令(可以搜索出隐藏文件)
作用:用于查找文件
语法:#find 路径范围 参数 参数值
主要两个参数:
-name:按照文档名称进行搜索(支持模糊搜索)
-type:按照文档的类型进行搜索(
文档类型: "-"表示文件(在使用find的时候需要使用f来代替),"d"表示文件夹

案例:使用find来搜索httpd.conf文件。
#find / -name httpd.conf
结果:/etc/httpd/conf/httpd.conf

案例:搜索etc目录下的所有conf后缀文件
#find /etc -name *.conf

案例:使用find来搜索/etc/sane.d/目录下所有的文件(类型)
#find /etc/sane.d/ -type f

案例:搜索/etc下所有的文件夹
#find /etc/ -type d

8、service指令(重点):
作用:用来控制一些软件的服务启动/停止/重启
语法:#service 服务名 start/stop/restart

案例:
需要启动本机安装的Apache(网站服务器软件,不需要重新装,linux装好之后就自动安装好了,只是没有启动),其服务名叫httpd(启动最好使用root用户启动,否则可能启动失败)
#service httpd start

使用ps -ef查看Apache是否已经启动:
#ps -ef | grep httpd

9、kill指令(重点)
作用:表示杀死进程
语法:#kill 进程PID (语法需要配合ps一起使用)

案例:kill掉Apache进程
需要 先使用 ps -ef | grep httpd 查找到该进程的PID
然后在 :kill 进程的PID

与kill作用相似但是更好用的使用killall:
语法:killall 进程名称
不需要使用ps,直接:killall httpd

10、ifconfig指令(重点)
作用:用于操作网卡相关的指令
简单指令:#ifconfig (获取网卡信息)

11、reboot指令
作用:重启计算机
语法1:reboot 重启
语法2:reboot -w 模拟重启,但是不重启(只写开机和关机的日志信息)

12、shutdown指令
作用:关机(慎用)
语法1:shutdown -h now “关机提示” 或 shutdown -h 15:25 “关机提示”
案例:设置Linux系统关机时间在12:00
#shut -h 12:00 “系统将在12:00关机,请保存好文档”
想要取消关机设置直接:ctrl+c就可以

13、uptime指令
作用:输出计算机的持续在线时间(计算机从开机到现在运行的时间)
语法:#uptime

14、uname指令
作用:用于获取操作系统的相关信息
语法:#uname 获取操作系统的类型(输出Linux)

15、netstat -tnlp 指令
作用:查看网络连接状态
语法:#netstat -tnlp
参数:
-t:表示只列出tcp协议的连接
-n:表示将地址从字母转换成ip地址,将协议转化成端口号来显示
-l:表示过滤出"start(状态)"列中其值为LISTEN(监听)的连接
-p:表示显示出发起连接的进程pid和进程名称

16、man指令
作用:用于查看手册(q键退出)

案例:查看cp指令
#man cp

练习:

1、删除/tmp下所有以A开头的文件: #rm -f /tmp/A*
2、如何查看系统中最后创建的三个用户:
#tail -3 /etc/passwd (在该文件中查看用户,记录用户信息的文件)
3、统计当前系统中一共多少个账户:
#wc -l /etc/passwd
4、如何一次性创建目录 /text/1/2/3/4
#mkdir -p /text/1/2/3/4(看到一次性加上-p)
5、删除/tmp下的所有文件
#rm -rf /tmp/* (需要加 /*,因为不能删除tmp文件,是删除其下面的文件)
6、启动Apache的服务,并检查是否启动成功
检查是否启动成功用 ps -ef | grep httpd

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值