python快速入门

python快速入门

1.基础用法

字符串连接

print("hello" + " world" + "!")
输出
hello world!

单双引号转义 '

print("he saild 'good!'")
print('he saild "good!"')
print("he said \"Let\'s go\"")
输出
he saild 'good!'
he saild "good!"
he said "Let's go"

换行 \n

print("hello!\nworld")
输出
hello!
world

三引号跨行字符串 ''' ''' """ """ 可以用三个单引号,也可以是三个双引号

print('''a
b
c
d
黄河之水天上来''')

输出
a
b
c
d
黄河之水天上来

1.1 python变量

greet = "你好,吃了么, "
greet_chinese = greet
greet_english = "you what's up, "
greet = greet_english;
print(greet + "张三")
print(greet + "李四")
print(greet_chinese + "王五")
输出
you what's up, 张三
you what's up, 李四
你好,吃了么, 王五

1.2 python命名规则

1.下划线命名法

​ 1.字母全部小写

​ 2.不同单词用下划线分隔 user_age user_gender

2.驼峰命名法

​ 单词用首字母大写分隔 UserAge UserGender

image-20231119142310675

1.3 python 数学运算

print(1+2+3/4*5)  //6.75   3/4=0.75
x**2 ==  x的平方


#求 -x2 - 2x + 3 =0 的根
a = -1
b = -2
c = 3
print((-b + math.sqrt(b ** 2 - 4 * a * c)) / (2 * a))
print((-b - math.sqrt(b ** 2 - 4 * a * c)) / (2 * a))
输出
-3.0
1.0

1.4 python数据类型

字符串 str

整数 int 和 浮点数 float

布尔类型 bool

空值类型 NoneType

#对字符串求长度
s = "Hello world!"
print(len(s))

#通过索引获取单个字符
print(s[1])
print(len(s) -1)

# 布尔类型
b1 = True
b2 = False

# 控制类型
n = None

#type函数
print(type(s))
print(type(b1))
print(type(b2))
print(type(n))

输出
12
e
11
<class 'str'>
<class 'bool'>
<class 'bool'>
<class 'NoneType'>

1.5 python input函数

# BMI = 体重/(身高 ** 2)
user_weight = float(input("请输入您的体重 (单位:kg): "))  #将其转换为float型   input返回的值是str类型
user_height = float(input("请输入您的身高 (单位:m): "))
user_BMI = user_weight / (user_height) ** 2
print("您的BMI值为:" + str(user_BMI))   #将其转化为 str字符串类型 (输出的时候必须为str类型)

输出
请输入您的体重 (单位:kg): 70
请输入您的身高 (单位:m): 1.8
您的BMI值为:21.604938271604937

1.6 python 条件语句

mood_index = int(input("对象今天的心情指数是:"))
if mood_index >= 60:
    print("恭喜,今晚可以打游戏")
else:
    print("为了自个小命,还是别打了。")
    
输出
对象今天的心情指数是:70
恭喜,今晚可以打游戏

1.7 python嵌套/多条件判断

# BMI = 体重/(身高 ** 2)
user_weight = float(input("请输入您的体重 (单位:kg): "))
user_height = float(input("请输入您的身高 (单位:m): "))
user_BMI = user_weight / (user_height) ** 2
print("您的BMI值为:" + str(user_BMI))

#偏瘦 user_BMI <= 18.5
#正常 18.5< user_BMI <=25
#偏胖 25< user_BMI <=30
#肥胖  user_BMI >= 30

if user_BMI <= float(18.5):
    print("您偏瘦")
elif 18.5< user_BMI <=25:
    print("正常")
elif 25< user_BMI <=30:
    print("偏胖")
else:
    print("肥胖")
    
 输出
请输入您的体重 (单位:kg): 70
请输入您的身高 (单位:m): 1.8
您的BMI值为:21.604938271604937
正常

1.8 python 逻辑运算

​ and 与 or 或 not 非

x > 5 and x< 10 x>5 or x<10 not x >5

运算优先级 not > and > or

1.9 python 列表

shopping_list = ["键盘","鼠标"]
shopping_list.append("屏幕")  #往列表中追加
shopping_list.remove("鼠标")  #将某值从列表移除
print(shopping_list)

price = [799,1024,200,800]
max_price = max(price)
min_price = min(price)  #最小值
sorted_price = sorted(price) #排序
print(max_price)
print(min_price)
print(sorted_price)

输出
['键盘', '屏幕']
1024
200
[200, 799, 800, 1024]

2.0 python 字典

字典用于储存 键值对 key : value

contacts = {"小明": "1370000000",

​ "小花": "1370000001"}

元组 用圆括号 tuple = ("键盘",“键帽”)

列表 用 方括号 list = ["键盘",“键帽”]

slang_dict = {"外国文学":"《哈姆雷特》",
              "外国文化":"百科全书派"}
slang_dict["中国文学"] = "尤三姐"   #将其加入到收录语种
slang_dict["中国文化"] = "《本草纲目》"
slang_dict["世界历史"] = "诺曼底登陆"

query = input("请输入您想要查询的流星雨:")
if query in slang_dict:
    print("您查询的" + query + "含义如下")
    print(slang_dict[query])
else:
    print("您查询的流星语暂未收录。")
    print("当前本词典收录语为:" + str(len(slang_dict)))
输出
请输入您想要查询的流星雨:世界历史
您查询的世界历史含义如下
诺曼底登陆

2.1 python for循环

for 变量名 in 可迭代对象

for i in range(5,10) range(5,10) 表示从5-9的数

range(起始值,结束值,步长)

total = 0;
for i in range(1,101):
    total = total + i
print(total)
输出
5050

image-20231119154327796

image-20231119154340069

2.2 python while循环

image-20231119154621905

2.3 python格式化字符串

format 方法

year = "2023年"
name= "李明"
message_content = """
律回春渐,新元迎启,
金{receiver_year}贺岁,欢乐瑞祥。
给{receiver_name}及家人拜年啦!
""".format(receiver_year=year,receiver_name=name)
print(message_content)

输出
律回春渐,新元迎启,
金2023年贺岁,欢乐瑞祥。
给李明及家人拜年啦!

或者  f - 字符串
year = "2023年"
name= "李明"
message_content = f"""
律回春渐,新元迎启,
金{year}贺岁,欢乐瑞祥。
给{name}及家人拜年啦!
"""
print(message_content)

输出
律回春渐,新元迎启,
金2023年贺岁,欢乐瑞祥。
给李明及家人拜年啦!
gpa_dict = {"小明":3.251,"小花":3.869,"小李":2.683}
for name,gpa in gpa_dict.items():
    print("{0} 你好,你的当前绩点为:{1:.2f}".format(name,gpa))  #:.2f : 用来保证输出几位小数
  
输出
小明 你好,你的当前绩点为:3.25
小花 你好,你的当前绩点为:3.87
小李 你好,你的当前绩点为:2.68

2.4 python 函数

def 名字():

名字() 来调用函数

或者 def 名字(参数1,参数2)

def calculate_BMI(weight,height):
    BMI = weight / height ** 2
    if BMI <= 18.5:
        category = "偏瘦"
    elif BMI <= 25:
        category = "正常"
    elif BMI <= 30:
        category = "肥胖"
    else:
        category = "肥胖"
    print(f"您的BMI分类为:{category}")
    return  BMI

result = calculate_BMI(70,1.8)
print(result)

输出
您的BMI分类为:正常
21.604938271604937

2.5 python 引入模块

引入模块的方法

  • import 语句

​ import math

  • from ... import .. 语句

from statistics import median,mean

print (median([19,-5,36])) //不需要加statistics前缀了

print (mean([19,-5,36]))

  • form ... import * //把模块里面所有内容都会进行引入(不推荐使用)

    print (median([19,-5,36])) //不需要加statistics前缀了

    print (mean([19,-5,36]))

pypi.org 网站可以对第三库进行搜索, 在终端 输入 pip install 后面跟上库的名字 进行安装

2.6 python 创建类

class 名字:

​ #接下来是一些定义类的代码

class CuteCat:     #创建 猫类     
    def __init__(self,cat_name,cat_age,cat_color):  #定义属性  self(第一个参数),用于表示对象自身,约定俗成为self
        self.name = cat_name
        self.age = cat_age
        self.color = cat_color
 
cat1 = CuteCat("Jojo",5,"blue")   #创建对象
print(f"小猫{cat1.name}的年龄是:{cat1.age}岁,花色是:{cat1.color}")

输出:
小猫Jojo的年龄是:5岁,花色是:blue


class CuteCat:     #定义类 
    def __init__(self,cat_name,cat_age,cat_color):  #定义属性 
        self.name = cat_name
        self.age = cat_age
        self.color = cat_color
    def speak(self):    #定义方法
        print("喵" * self.age)
    def think(self,content):
        print(f"小猫{self.name}在思考{content}...")


cat1 = CuteCat("Jojo",5,"blue")
print(f"小猫{cat1.name}的年龄是:{cat1.age}岁,花色是:{cat1.color}")
cat1.speak()
cat1.think("现在去抓沙发哈斯斯纸箱")
输出
小猫Jojo的年龄是:5岁,花色是:blue
喵喵喵喵喵
小猫Jojo在思考现在去抓沙发哈斯斯纸箱...

练习

#定义一个学生类
# 要求:
# 1.属性包括学生姓名、学号,以及语数英三科的成绩
# 2.能够设置学生某科的成绩
# 3.能够打印出该学生的所有科目成绩
class Student:
    def __init__(self,stu_name,stu_id):
        self.stu_name = stu_name
        self.stu_id = stu_id
        self.grades = {"语文": 0,"数学": 0,"英语": 0}
    def set_grade(self,course,grade):   #设置学生某科的成绩
        if course in self.grades:
            self.grades[course] = grade
    def print_Allgrades(self):  #打印出该学生的所有科目成绩
        print(f"学生{self.stu_name}(学号:{self.stu_id})出成绩为;")
        for course in self.grades:
            print(f"{course}:{self.grades[course]}分")



chen = Student("小陈","1006")
zeng = Student("小增","1008")
zeng.set_grade("数学",95)
zeng.set_grade("英语",90)

zeng.print_Allgrades() #打印出该学生的所有科目成绩

print(chen.stu_name)
print(zeng.stu_id)
print(zeng.grades)

学生小增(学号:1008)出成绩为;
语文:0分
数学:95分
英语:90分

小陈
1008
{'语文': 0, '数学': 95, '英语': 90}

2.7 python 类继承

calss Mammal:

class Human(Mammal): #括号里写上父类的名字 这样就继承了父类

# 类继承练习:人力系统
#   - 员工分为两类:全职员工  FullTimeEmployee、兼职员工  PartTimeEmployee。
#   - 全职和兼职都有:“姓名 name”、“工号 id”属性,
#         都具备“打印信息 print_info”(打印姓名、工号)方法。
#   - 全职有“月薪 monthly_salary”属性
#         兼职有“日薪 daily_salary”属性、“每月工作天数 work_days”的属性。
#   - 全职和兼职都有“计算月薪 calculate_monthly_pay”的方法,但具体计算过程不一样。

class Employee:
    def __init__(self,name,id):
        self.name = name
        self.id = id
    def print_info(self):
        print(f"姓名:{self.name}   编号:{self.id}")

class FullTimeEmployee(Employee):  #继承Employee类   #全职员工的类
    def __init__(self,name,id,monthly_salary):
        super().__init__(name,id)
        self.monthly_salary = monthly_salary
    def calculate_monthly_pay(self):
        return self.monthly_salary
class PartTimeEmployee(Employee):  #兼职员工的类
    def __init__(self,name,id,daily_salary,work_days):
        super().__init__(name,id)
        self.daily_salary=daily_salary
        self.work_days=work_days
    def calculate_monthly_pay(self):
        return self.daily_salary*self.work_days

zhangsan = FullTimeEmployee("张三","1001",6000)
lisi = PartTimeEmployee("李四","1002",300,15)
zhangsan.print_info()
lisi.print_info()
print(zhangsan.calculate_monthly_pay())
print(lisi.calculate_monthly_pay())


输出
姓名:张三   编号:1001
姓名:李四   编号:1002
6000
4500

2.8 python文件操作

open("路径",模式,encoding="utf-8")

模式: 分为 r:只读模式, w:只写模式 r+: 可读可写入 a: 在后面追加

encoding :编码方式

read(): 返回全部文件内容的字符串 read(10): 读取前10行

readline():会读一行文件内容,并打印

readlines(): 会读全部文件内容,并把每行作为列表元素返回

close() 关闭文件,释放资源

with open("./data.txt") as f #文件执行完毕,会自动关闭文件

f = open("./data.txt","r",encoding="utf-8")
content = f.read()
print(content)
f.close()

f = open("./data.txt","r",encoding="utf-8")
lines = f.readlines()
for line in lines:
    print(line)

with open("./data.txt","r",encoding="utf-8") as f:
    print(f.readline())
    print(f.readline())

 输出:
金融界2023年11月17日消息,据国家知识产权局公告,腾讯科技(深圳)有限公司取得一项名为“文本处理方法、装置、电子设备、及计算机可读存储介质”,公开号CN116340467B,专利申请日期为2023年。

专利摘要显示,本申请提供了一种文本处理方法、装置、电子设备及计算机可读存储介质;

采集日期:2023年11月19日

2.9 python 异常处理

image-20231119212404368

image-20231119212411041

image-20231119212440268

3.0 python测试

为了测试程序中 是否有bug

assert:中文意思为 断言 ,

​ assert len("Hi") == 2

	assert  1 + 2 > 6,会出现AssertionError,  此时程序就会中止,后面的代码就不执行了

unittest(常用):可以帮我们自动找出和运行所有测试用例,一次性展示所有测试结果,并且给出未通过测试的详情

image-20231119213924236

posted @ 2023-11-19 21:42  爲誰心殇  阅读(157)  评论(0编辑  收藏  举报
>