赞
踩
个人博客:小试Python(二)
统计两个数组的相同元素个数示例:
num1 = [1, 2, 3, 4, 5, 6]
num2 = [4, 5, 6, 7, 8, 9]
count = 0
for i in num1:
if i in num2:
count += 1
print(count)
上面的if i in num2,i是遍历num1数组的每一次值,通过if i in num2来判断i是否在num2数组中。
不要求每一行的元素个数相同
二维数组定义及遍历:
number_grid = [
[1, 2, 3],
[4, 5, 6],
[1, 2],
[1]
]
for row in number_grid:
for col in row:
print(col)
这个运算符,我目前学过的语言中并没有遇到过,它是指数运算符,它的优先级和数学上一样,是最高的。
print(3 ** 3)
结果:
单行注释: # 注释内容
多行注释:三个单引号包住注释部分
'''
注释内容
注释内容
注释内容
'''
和Java的异常处理机制一样
try:
会出异常代码
except 监听异常类型:
提示出异常的代码
可以直接在异常类型后加as 变量名
,之后直接print(变量名),打印出提示信息。
代码:
try:
value = 10 / 0
except ZeroDivisionError as err:
print("Divided by Zero")
print(err)
结果:
open(参数a, 参数b)函数,参数a和参数b都是字符串形式,参数a是要打开的文件的相对路径或绝对路径,参数b是文件打开模式。后面需要关闭文件。
参数b:
readable():查看文件是否可读
read():读整个文件
readline():读一行
readlines():返回一个数组,数组的每一个元素分别是
文件的一行
file = open("test.txt", "r")
print(file.readable())
print(file.read())
file.close()
read()这里的代码会空两行,一行是print()的一行,还有一行是read()每打印出一行的换行。
read()在当前指针处开始读,而执行完一次后,指针在文件尾部,其后为空,所以之后的read()每次运行均为空。readline()、readlines()同理
readlines()
要打开的文件:
123
456
789
readlines()打印出来:
['123\n', '456\n', '789\n']
这里需要注意:没有换行符号的话会出现写的东西非常混乱。
file = open("test.txt", "a")
file.write("123")
file.write("123")
file.close()
没执行程序前:
123
456
789
执行后:
123
456
789123123
应该改为file.write("\n123")
,才可以实现每一次增加的都是单独一行而不会混乱。
open()函数的第二个参数为"r+“或"w+”。
"r+"和"w+"相同点:
不同点:
"r+"不是重写文件,而是覆盖,即当原来的文件内容比写的文件内容少时,后面的内容还在,而"w+"是重写文件。
例子:
原来的内容:
123456789
写"abc":
“r+”:变为"abc456789"
“w+”:变为"abc"
自己尝试后出现的问题:
file = open("test.txt", "r+")
file.write("\n123\n456\n789")
print(file.read())
file.close()
file = open("test.txt", "r+")
file.write("\n123\n456\n789")
print(file.readlines())
file.close()
原因:
文件指针在文件的开头,经过write()方法对文件进行写操作后,这时候的文件指针已经来到了文件的尾部。
read()在当前指针处开始读,而当前指针在文件尾部,其后为空,所以打印文件为空(两行空行)。
readlines()时回到文件开头处开始读。而刚刚写入的还没有保存,所以只能读出写入操作之前的内容。写的时候在文件尾部写。未解决疑问:为什么write()搭配readlines()后,写文件时是在文件尾部写,而搭配read()时是在文件开头写。
上面问题解决方案:使用seek()函数,让文件指针指向需要的位置。seek(0)即指向文件开头。
file = open("test.txt", "r+")
file.write("\n123\n456\n789")
file.seek(0)
print(file.read()) //print(file.readlines())
file.close()
def __init__(self, 参数a): # 注意下划线都是两条,第一个参数不需要传参,相当于其它语言的"this"
例子:
其中,类单独放在了另一个py文件中。
Student类
class Student:
def __init__(self, name, major, gpa):
self.name = name
self.major = major
self.gpa = gpa
def on_honor_roll(self):
if self.gpa >= 3.5:
return True
else:
return False
main类:
from Student import Student
student1 = Student("Jim", "Business", 3.1)
student2 = Student("Pam", "Business", 3.8)
print(student1.on_honor_roll())
print(student2.gpa)
class 子类(父类):
子类方法,可以重写覆盖父类的方法,也可以增添方法
实例:
Chef类(父类):
class Chef:
def make_chicken(self):
print("The chef makes a chicken")
def make_salad(self):
print("The chef makes salad")
def make_special_dish(self):
print("The chef makes bbq ribs")
ChineseChef(子类):
from Chef import Chef
class ChineseChef(Chef):
def make_special_dish(self):
print("The chef makes orange chicken")
def make_fried_rice(self):
print("The chef makes fried rice")
main类:
from Chef import Chef
from ChineseChef import ChineseChef
chef = Chef()
chef.make_chicken()
chef.make_special_dish()
print()
chinesechef = ChineseChef()
chinesechef.make_chicken()
chinesechef.make_special_dish()
chinesechef.make_fried_rice()
学习:Youtube:Mike Dane
文件读写部分参考:Python文件进行写操作后立即读出的结果、原因分析、解决方法
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。