当前位置:   article > 正文

小试Python(二)_python查找两个数组中相同的元素个数

python查找两个数组中相同的元素个数

小试Python(二)

个人博客:小试Python(二)

if x in y

统计两个数组的相同元素个数示例:

    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)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

上面的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)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

运算符**

这个运算符,我目前学过的语言中并没有遇到过,它是指数运算符,它的优先级和数学上一样,是最高的。

    print(3 ** 3)

  • 1
  • 2

结果:

注释

单行注释:  # 注释内容

多行注释:三个单引号包住注释部分

    '''
    注释内容
    注释内容
    注释内容
    '''

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

异常处理

和Java的异常处理机制一样

	try:
		会出异常代码
	except 监听异常类型:
		提示出异常的代码

  • 1
  • 2
  • 3
  • 4
  • 5

可以直接在异常类型后加as 变量名,之后直接print(变量名),打印出提示信息。

代码:

    try:
    	value = 10 / 0
    except ZeroDivisionError as err:
    	print("Divided by Zero")
    	print(err)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

结果:

文件方法

open(参数a, 参数b)函数,参数a和参数b都是字符串形式,参数a是要打开的文件的相对路径或绝对路径,参数b是文件打开模式。后面需要关闭文件。

参数b:

  1. “r”:以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
  2. “w”:打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
  3. “r+”:打开一个文件用于读写。文件指针将会放在文件的开头。
  4. “w+”:打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
  5. “a”:打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

读文件

readable():查看文件是否可读

read():读整个文件

readline():读一行

readlines():返回一个数组,数组的每一个元素分别是
文件的一行

    
    file = open("test.txt", "r")
    
    print(file.readable())
    print(file.read())
    
    file.close()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

read()这里的代码会空两行,一行是print()的一行,还有一行是read()每打印出一行的换行。

read()在当前指针处开始读,而执行完一次后,指针在文件尾部,其后为空,所以之后的read()每次运行均为空。readline()、readlines()同理

readlines()

要打开的文件:

    123
    456
    789

  • 1
  • 2
  • 3
  • 4

readlines()打印出来:

    ['123\n', '456\n', '789\n']

  • 1
  • 2

写文件

  1. open()函数的第二个参数为"a",在后面添加新内容,具体如参数b中所示。

这里需要注意:没有换行符号的话会出现写的东西非常混乱。

    file = open("test.txt", "a")
    
    file.write("123")
    file.write("123")
    
    file.close()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
    没执行程序前:
    123
    456
    789
    执行后:
    123
    456
    789123123

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

应该改为file.write("\n123"),才可以实现每一次增加的都是单独一行而不会混乱。

  1. open()函数的第二个参数为"w"。和上面的相似,不同的是:不是在文件后添加新内容,而是重写文件内容。

读写文件

open()函数的第二个参数为"r+“或"w+”。

"r+"和"w+"相同点:

  1. 文件权限都是可读可写
  2. 文件的指针放在文件的开头

不同点:

"r+"不是重写文件,而是覆盖,即当原来的文件内容比写的文件内容少时,后面的内容还在,而"w+"是重写文件。

例子:

原来的内容:

123456789

写"abc":

“r+”:变为"abc456789"

“w+”:变为"abc"

自己尝试后出现的问题:

  1. 打印不出东西:
    file = open("test.txt", "r+")
    
    file.write("\n123\n456\n789")
    print(file.read())
    
    file.close()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  1. 每次打印的都是文件打开前的内容,且从重写文件变化成了在文件后添加内容,即和参数为"a"时一样。
    file = open("test.txt", "r+")
    
    file.write("\n123\n456\n789")
    print(file.readlines())
    
    file.close()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

原因:

文件指针在文件的开头,经过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()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

构造函数

    def __init__(self, 参数a): # 注意下划线都是两条,第一个参数不需要传参,相当于其它语言的"this"

  • 1
  • 2

例子:

其中,类单独放在了另一个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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

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)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

继承

	class 子类(父类):
		子类方法,可以重写覆盖父类的方法,也可以增添方法

  • 1
  • 2
  • 3

实例:

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")

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

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")

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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()


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

解释器

环境变量设置

  1. 右键点击"计算机",然后点击"属性"
  2. 点击"高级系统设置"

  1. 点击"环境变量"

  1. 选中"用户变量的Path",点击"编辑"

  1. 点击"新建",添加python安装路径

  1. 之后一直点击"确定"即可

cmd写Python

  1. win + r, 输入"cmd"
  2. 输入"python", 变成下图所示

  1. 写python代码,如下图所示

学习:Youtube:Mike Dane

文件读写部分参考:Python文件进行写操作后立即读出的结果、原因分析、解决方法

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/687491
推荐阅读
相关标签
  

闽ICP备14008679号