Python 学习笔记

250次阅读
没有评论

打印

print("Hello World!") # 输出字符串

print("""
输
出
多
行
字
符
串
""") # 输出多行字符串
  • 输出 字符串 必须以英文符号双引号包裹
  • 输出多行字符使用 """ 包裹字符串 比如"""" 多行的字符串 """

变量

one = 1 # 变量赋值 也可以是 整数 浮点数 布尔值
print(one)
one = 2 # 变量重新赋值
print(one)
tow = one # 变量赋值变量
print(tow)

命名规则

  • 变量名不能用除了 _ 符号之外的符号分隔字符串比如a!b 或者空格比如 a b 不能以 数字 开头比如2a
  • 变量名最好用表达含义 英文单词 命名 不要用 拼音和中文 如果变量名是多个单词组成就用 _ 符号分隔比如 user_name 保持可读性
  • 变量名区分大小写

数学运算

print(1 + 1) # 加
print(1 - 1) # 减
print(1 * 2) # 乘
print(1 / 2) # 除
print("hello" + "world") # 如果是字符串相加 就是字符串拼接
import math

print(math.sqrt(2)) # 计算平方根
  • import 导入库 相当于使用别人写好代码进行使用

注释

# 这是注释
  • 不会被解释器解释 用来表示代码作用

数据类型

print(1) # 输出整数
print(1.1) # 输出浮点数
print(True) # 布尔值
print("hello\nworld") # 输出换行转义字符
print(None) # 输出空值
  • 输出 整数 浮点数 布尔值 不需要以英文符号双引号包裹
  • \是转义字符 比如换行是\n

查看数据类型

使用 type 函数

print(type(None))

类型转换

print(int(1.1)) # 浮点数转整数
print(int("1")) # 字符串转整数 但是字符串必须都是数字
print(bool(0))  # 除了 0 是 False 其他都是 True
print(float(1)) # 整数转浮点数 但是参数必须都是数字
print(float("1")) # 整数转浮点数 但是字符串必须都是数字
print(str(None)) # 所有类型都可以转字符串

输入

print(input(" 输入内容:"))

判断, 缩进, 逻辑运算符

判断

result = input(" 输入内容:")

if result == "1":
    # 等于就执行以下代码
    print(" 等于 yes")
else:
    # 不等于就执行以下代码
    print(" 等于 no")
条件 含义
!= 不等于
>= 大于或者等于
<= 小于或者等于

等等

缩进

以缩进个数表示代码让那个判断执行

result = input(" 输入内容:")

if result == "1":
# 1 缩进 以下代码都属于 if result == "1": 条件成立的代码
    # 等于就执行以下代码
    print(" 等于 1")

    result = input(" 输入内容:")

    if result == "2":
        # 2 缩进 以下代码都属于 if result == "2": 条件成立的代码
        print(" 等于 2")

else:
# 1 缩进 以下代码都属于 if result == "1": 条件不成立的代码
    # 不等于就执行以下代码
    print(" 什么都不是 ")

逻辑运算符

result = input(" 输入第一个内容:")
result_2 = input(" 输入第二个内容:")

if result == "1" and result_2 == "2":
    print(" 同时输入 1 和 2")
else:
    print(" 没有同时输入 1 和 2")
  • 必须满足所有条件

result = input(" 输入第一个内容:")
result_2 = input(" 输入第二个内容:")

if result == "1" or result_2 == "2":
    print(" 输入 1 或 2")
else:
    print(" 没有输入 1 或 2")
  • 满足至少一个条件

result = input(" 输入内容:")

if not result == "1":
    print(" 输入不等于 1")
else:
    print(" 输入等于 1")
  • 必须不满足所有条件

列表与字符串

my_list = [1, 2, 3, 4, 5]  # 定义一个列表

my_list.append(4)  # 向列表添加数据 会追加的在列表的尾部

my_list[0] = 2  # 通过下标修改列表中 对应下标的数据

my_list.remove(2)  # 删除列表中对应数据 注意下标会发生改变 后面下标会前进一位或者下标会减少一位

print(my_list[0])  # 打印下标的值

print(len(my_list))  # 打印下标总数

print(my_list[0:3]) # 获取列表的一个范围内下标对应的值
  • 列表值对应的下标位置默认从 0 开始

遍历

my_list = [1, 2, 3, 4, 5]  # 定义一个列表

for i in my_list:
    # 打印遍历的值
    print(i)

字符串

my_string = "Hello World"

print(my_string[0])  # 获取字符串的下标对应的值

print(my_string[0:5])  # 获取字符串的一个范围内下标对应的值
  • 无法改变值

元组

my_tuple = (1, 2, 3)
print(my_tuple)
  • 无法改变值

    遍历

my_tuple = (1, 2, 3)

for i in my_tuple:
    # 打印遍历的值
    print(i)

字典

my_dict = {'a': 1, 'b': 2, 'c': 3}

my_dict["d"] = 4  # 向字典添加数据 键和值都会被添加到字典中

遍历

my_dict = {'a': 1, 'b': 2, 'c': 3}

# 遍历键和值
for key, value in my_dict.items():
    print(key, value)

# 遍历键
for key in my_dict.keys():
    print(key)

# 遍历值
for value in my_dict.values():
    print(value)

range 函数

for i in range(1, 101, 2):
    print(i)
  • 参数一 开始数 参数二 结束数 参数三 跳过步数

while 循环

i = 0
while i < 100:
    i = i+1
    print(i)
  • while 条件 while 执行代码 处于同一个代码块
  • 条件为 true 会继续循环 直到为 false 为止

格式化字符串

my_string = "h{0}{1}{1}{0} w{0}r{1}d"  # {数字} 数字表示 format 函数参数位数的值

print(my_string.format("o", "l"))

my_string = "h{o}{l}{l}{o} w{o}r{l}d"  # {关键字} 表示 format 函数对应关键字的值

print(my_string.format(o="o", l="l"))
  • 格式化是字符串按照固定格式进行输出和打印
  • 使用花括号包裹数字或关键字 例如 {1}{name}

函数

# 定义函数
def function():
    print(" 函数 ")

function()
function()

形参

# 定义函数
def function(s):
    print(" 这是形参数{s}".format(s=s))

function(1)
function(2)
  • 要让函数处理的值叫形参 传入的值叫实参 在函数中的圆括号定义 可以理解为变量传入的时候是赋值

返回值

# 定义函数
def function(s):
    return s

print(function(1))

result = function(2) # 赋值变量 
print(result)
  • 函数处理完的结果用 return 返回 例如:return 1
  • 没有返回值的函数赋值默认为None
  • 可以赋值到变量或者列表,字典,元组中存储

导入库

  • 导入别人已经写好的函数进行使用

第一种写法

import os # 导入 os 库
os.system("echo hello world") # 调用库中的函数进行处理
  • 导入 os 库中所有的函数 调用使用 os. 函数名 调用即可

第二种写法

from os import system  # 导入 os 库

system("echo hello world") # 调用库中的函数进行处理
  • 导入 os 库中指定函数 c

类的的定义和继承

class CXK:
    def __init__(self, name, time):
        # 属性类似一个的人信息
        # 构造器是类似于一个使用技能的准备工作
        self.name = name
        self.time = time

    # 定义方法 方法类似一个人会的技能
    def sing(self):
        print(" 唱 ")

    def rap(self):
        print("rap")

    def basketball(self):
        print(" 篮球 ")

    def music(self):
        print("music")

    def end(self, end_str):
        print(end_str)

# 实例化
cxk = CXK(" 蔡徐坤 ", " 两年半 ")
print(" 大家好 我叫{name} 是一名全民偶像练习生 练习时长{time} 喜欢 ".format(name=cxk.name, time=cxk.time))

cxk.sing()
cxk.rap()
cxk.basketball()
cxk.music()
cxk.end(" 鸡你太美 ")
  • self代表自己

继承

class Animal:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    # 子类没有重写 直接继承
    def what_is(self):
        print(" 都是动物 ")

    def chinese_name(self):
        print(" 是动物 ")

class People(Animal):
    def __init__(self):
        # super 初始化属性并应用到当前继承类
        super().__init__("people", 18)

    # 子类的自有方法
    def walk(self):
        print(" 两足走路 ")

    # 子类存在父类相同的方法名 子类的方法会覆盖父类方法
    def chinese_name(self):
        print(" 是人类 ")

class Cat(Animal):
    def __init__(self):
        # super 初始化属性并应用到当前继承类
        super().__init__("cat", 8)

    # 子类的自有方法
    def walk(self):
        print(" 四足走路 ")

    # 子类存在父类相同的方法名 子类的方法会覆盖父类方法
    def chinese_name(self):
        print(" 是猫猫 ")

people = People()
people.chinese_name()
people.walk()

cat = Cat()
cat.chinese_name()
cat.walk()
  • 继承写法 类名(父类)

文件读写

模式

模式 描述
t 文本模式 (默认)。
x 写模式,新建一个文件,如果该文件已存在则会报错。
b 二进制模式。
+ 打开一个文件进行更新(可读可写)。
U 通用换行模式(不推荐)。
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

文件路径

绝对路径

C:\Users\Admin\PycharmProjects\test.py

相对路径

./test.py
符号 含义
. 当前目录
.. 上一级目录

读取文件

file = open("./test.py","r", encoding="utf-8")
print(file.read())
file.readline()  # 读取一行
file.readlines()  # 读取为列表 自动转义相关字符
file.close()  # 关闭打开的文件

自动关闭读取的文件

ith open("./test.py", "r", encoding="utf-8") as file:
    print(file.read())
    file.readline()  # 读取一行
    file.readlines()  # 读取为列表 自动转义相关字符

写文件

file = open("./test.py","w", encoding="utf-8")
file.write("print('hello world')")
file.close()  # 关闭打开的文件

自动关闭写的文件

with open("./test.py", "w", encoding="utf-8") as file:
    file.write("print('hello world')")
  • open 函数 第一个参数是读取的文件路径 第二个是读取模式 第三个是文件编码

异常处理

try:
    result = int(input(" 输入整数:"))
    print(result)
except ValueError:
    print(" 不能输入其他类型的数据 ")
  • except 加上异常名即可处理

测试代码

result = int(input("Enter a number: "))
assert result == 1
  • 判断条件是否为 truefalse 就抛出异常

unittest

def my_adder(a, b):
    return a + b

def my_subtract(a, b):
    return a - b
import unittest
import test

# 必须继承 unittest Testcase 类
class StudentTest(unittest.TestCase):
    # 类似于类的 __init__ 方法
    def setUp(self):
        self.result = test.my_adder(1,2)

    # 方法名必须以 test_ 开头
    def test_no1(self):
        self.assertEqual(self.result, 3)

    def test_no2(self):
        self.assertEqual(self.result, 4)

在终端使用

python -m unittest main.py

回调函数


def main(call_function):
    # 把形参当成函数直接调用
    call_function("string")

# 形参对应函数传入的值
def call(s):
    # 执行代码
    print(s)

# 传入回调函数不要带括号 直接传入函数名称
main(call)

lambda

def main(call_function):
    # 把形参当成函数直接调用
    call_function("string")

main(lambda s: print(s))
  • lambda 回调函数格式 lambda 形参: 执行代码
(lambda s: print(s))("hello world")
  • lambda 形式函数传入参数 (lambda 形参: 执行代码)(实参)
正文完
 0
评论(没有评论)