for循环,文件管理

  • Post author:
  • Post category:其他



1、for循环


break结束循环


continue 终止本次循环,并开启下一次循环 控制循环结构执行


pass 占位

让程序什么都不做 #while True:

if 1 == 1:

pass


for循环 作用 用来遍历可迭代对象的数据元素


遍历是指经历且只经历一遍




可迭代对象 是指能够依次获取数据元素的对象

比如列表、元组  、字符 、 字典




语法

for 变量列表 in 可迭代对象:

语句块

else:

语句块

#使用循环生成列表元素 x = 1 L1=[]

while x <= 6: name = input(“请输入的名字”)

L1.append(name) x +=1 #使用for循环输出列表元素

for i in L1: print(i) #print(“tarena”)

#使用while循环输出列表元素 #y = 0 #while y < len(L1):

print(L1[y])

y += 1

else可以省略



for 变量列表 in 可迭代对象:

语句块

s = ‘ABCDE’ for x in s: print(‘x=’, x) else: print(“遍历结束”)


2、range()函数的使用


格式 range(起始数字 , 结束数字 ,步长)

使用for循环把 192.168.4.0/24 网段所有主机ip地址输出

for i in range(1,256):

print(“192.168.4.”,i,sep=””) x = 1

while x <= 255: print(“192.168.4.”,x,sep=””) x += 1

假设一个用户信息如下: 用户名是:root 密码是: 123456 写一个身份验证的程序,让用户输入用户名和密码登录, 用户名和密码全部匹配,提示登录成功。 否则继续,最多尝试3次。3次不匹配以后提示登录失败.

times = 0 # 用来记录循环次数 while times < 3:

name = input(‘请输入用户名:’) passwd = input(‘请输入密码: ‘)

if name != ‘root’ or passwd != ‘123456’:

print(‘输入有错请重新输入’)

times += 1 continue print(“登陆成功!”)

break else: print(‘登陆失败!’)


循环嵌套 输出乘法表

vim cf.py

j = 1

while j <= 9:

i = 1

while i <= j: k=i

j


print(i,”

“,j,”=”,k,end=” “)

i += 1

j += 1

print()

[root@dc code]# python3 cf.py

1 * 1 = 1

1 * 2 = 2 2 * 2 = 4

1 * 3 = 3 2 * 3 = 6 3 * 3 = 9

1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16

1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25

1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36

1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49

1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64

1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81


斐波那契数列

(后边的数 总是前2个数相加的和)

[root@teacher code]# cat fb.py

a = 0 b = 1

for i in range(10):

print(a) a,b = b,a+b

[root@dc code]# python3 fb.py

0

1

1

2

3

5

8

13

21

34


数据数据模块的使用

import

random

player = int(input(“请输入 0剪刀 1石头 2布 :”))

computer = random.randint(0,2)

print(“电脑的选择是:”,computer) if (player ==0 and computer ==2) or (player ==1 and computer ==0) or (player==2 and computer ==1): print(“赢了”)

elif player==computer: print(“平局”)

else : print(“输了”)

[root@dc code]# python3 game.py 请输入 0剪刀 1石头 2布 :0 电脑的选择是: 2 赢了 [root@dc code]# python3 game.py 请输入 0剪刀 1石头 2布 :1 电脑的选择是: 0 赢了


文件管理


文件迭代*

*

逐行处理文件,可以结合for循环


*


read读取字节到字符串中,不指定默认读到文件末尾,一次读取完放到变量中

*




f.read()读取所有



readline读取文件第一行,依次输出,一次读取一行



f.readline()读取一行



f.close() 关闭文件


readlines读取所有行,放到列表中



f.readlines() […………]读取所有,放入列表


[root@dc code]# head -5 /etc/passwd > a.txt

f = open(“/root/code/a.txt”,’r’)

data = f.readlines() for x in data: print(x)

[root@dc code]# python3 3.1.py root​:x:​0:0:root:/root:/bin/bash

bin​x:​1:1:bin:/bin:/sbin/nologin

daemon​x:​2:2:daemon:/sbin:/sbin/nologin

adm:x3:4:adm:/var/adm:/sbin/nologin

lp:x4:7:lp:/var/spool/lpd:/sbin/nologin

**



文件输出



write()向文件中写入内容


w 如果没有源文件会自动创建,如果有清空内容在写入

python3

f=open(‘/root/code/a.txt’,’w’) f.write(‘12345678\n’) 9 f.close()

12345678


writelines()项文件写入内容

python3

f=open(‘/root/code/a.txt’,’a’) f.writelines([‘abc\n’,’bnjk\n’])

f.writelines([‘abc\n’,’bnjk\n’]) f.writelines([‘abc\n’,’bnjk\n’]) f.close()

12345678 abc bnjk abc bnjk abc bnjk


文件内移动


seek(offset[,whence]:)移动指针到不同位置


#(偏移量,光标位置)0代表开头,2代表末尾,1代表当前



f.seek(0,0) 光标回到开头




f.seek(0,2) 光标回到末尾*

*



tell()返回当前文件指针位置


f=open(‘/root/code/a.txt’,’r+’)


f.tell()

0


f.seek(0,2)

36

f.tell() 36 f.read() ”

f.seek(0,0)

0 f.read(5) ‘12345’


with子句


读完文件,自动关闭文件

》》》with open(‘/root/code/a.txt’,’r’) as asdf: … data = asdf.readlines() …

》》》asdf.closed True



用Python实现对文件拷贝


[root@dc code]# vim cp.py

[root@dc code]# python3 cp.py

f1 = open(‘/bin/ls’,’rb’)

f2 = open(‘/root/ls’,’wb’)

data = f1.read() f2.write(data)

f1.close()

f2.close()

[root@dc code]# ls /root/ls

/root/ls



版权声明:本文为HYJW01原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。