基础-循环、模块、文件读写
1、循环(loop)
1.1for循环:语法“for[变量名] in [可迭代对象名]:[指令]"
name="xiaojiayu" for char in name: char=char.upper() print(char)
name=["xiao","jia","yu"] i=0 for char in name: new=name[i].upper() name[i]=new i+=1 print(name)
me=["xiao","jia","yu"] for i,char in enumerate(name): #enumerate函数会返回一个对应当前元素索引的值,可存在变量i中 new=name[i].upper() name[i]=new print(name) #输出结果:['XIAO', 'JIA', 'YU']
1.2 range函数:创建一个整数序列,接受2个参数,序列起始数字和结束数字;返回第一个参数到第二个参数之间(不含第二个参数)的所有整数。
for i in range(0,10): print(i) ''' ================ RESTART: E:/Program Files/python3.8/study/t1.py =============== 0 1 2 3 4 5 6 7 8 9 >>> '''
1.3、while循环:语法”while[表达式]:[执行代码]"
num=10 while num>0: print(num) num-=1 print("Happy New Year!") ''' 10 9 8 7 6 5 4 3 2 1 Happy New Year!'''
1.4 break,continue:break终止循环,从循环跳出;continue跳出本次循环,执行下次循环;
2、模块
2.1导入内置模块:
>>> import math
>>> math.pow (2,3)
8.0
2.2、导入其他模块:
导入模块时,其中的代码都会被执行。创建一个名为module1的模块代码如下:
#module1中的代码
print("hello")
module2中代码:
import t1
print("hello")
执行module2时,结果如下:
hello
hello
这个行为有时会导致不便。比如你的模块中可能有测试代码,不希望在测试时执行。那么把模块中所有的代码放置在if __name__ == "__main__”语句中,即可解决这个问题。如上例中modlue1代码改为:
if __name__ == "__main__”:
print("hello")
再执行module2,结果只打印1个hello。
3、文件
3.1 写文件操作
处理文件的第一步是使用内置函数open打开文件。open函数有2个参数:参数1,文件路径字符串;参数2,打开文件的模式;
文件路径:斜杠分隔的一串字符;为了避免程序在不同操作系统中运行出错,应使用内置函数os模块来创建路径。模块中的path函数接收文件路径中的文件名作为参数,并自动构建完整的文件路径。
>>> import os >>> os.path.join("user","ook","1.txt") #输出结果:'user\\ook\\1.txt'
打开方式:”r“:只读;”w“:只写;”w+“可读可写
f1=open("t1.txt","w") f1.write("hello python!") f1.close()
3.2 自动关闭文件:使用with语句打开文件的语法”with open([文件路径],[打开方式]) as [变量名]:[执行代码]"
3.3 读文件
>>> with open("t1.txt","r")as f2:
print(f2.read())
在没有关闭又打开文件的情况下,你只能调用文件对象的read方法1次。因此如后续程序需要,应将文件内容保存到1个变量或容器内;
3.4 csv文件
也可以使用with语句打开csv文件,但在语句中需要使用csv模块将文件对象转换为csv对象;csv模块有一个writer的方法,可接受一个文件对象和一个分隔符;writer方法返回一个带writerow方法的csv对象。writerow方法可以接受一个列表作为参数,writerow方法每次只能创建1行数据;
import csv list1=[["topgun","risky business","minorty report"],["titanic","the revenant","inceptin"],["training day","man on fire","flight"]] with open("test1.csv","w") as f: w=csv.writer(f,delimiter=",") for i in range(0,3): w.writerow(list1[i])
reader方法用法与writer类似;
import csv with open("test1.csv","r") as f: r=csv.reader(f,delimiter=",") for row in r: print(",".join(row))