python快速入门
Python快速入门
Python环境安装
查看是否安装成功
pycharm开发工具安装
https://www.jetbrains.com.cn/en-us/pycharm/download/?section=windows
开发第一个Python程序
这个是Python的虚拟环境文件,不要动。
print("hello world")
运行之后即可看到输出结果。
Python中的变量
greent = "您好,吃了么,";
print(greent + "张三")
print(greent + "李四")
print(greent + "王五")
输出:
您好,吃了么,张三
您好,吃了么,李四
您好,吃了么,王五
函数运算
先看一个简单点的
a = 1
b = 2
print(a + b)
对字符串求长度
# 对字符串求长度
str = "hello"
print(len(str))
输出结果:5
# 通过索引获取单个字符
print(str[0])
print(str[len(str) - 1])
输出结果:
h
o
# 布尔类型
b1 = True
b2 = False
# 空值类型
n = None
print("====================")
# 类型判断
print(type(b1))
print(type(n))
print(type(str))
print(type(1.5))
输出结果:
====================
<class 'bool'>
<class 'NoneType'>
<class 'str'>
<class 'float'>
推导求根公式
# 导入math函数库
import math
a = 1
b = 9
c = 20
print((-b + math.sqrt(b ** 2 - 4 * a * c)) / (2 * a))
print((-b - math.sqrt(b ** 2 - 4 * a * c)) / (2 * a))
输出结果:
-4.0
-5.0
Python运行模式
Python有两种运行模式,一种是命令行模式,一种是交互模式。
命令模式就是我们上面写的一条一条的程序指令。
交互模式就是我们在Python控制台写的一条一条的指令,它的缺点就是,退出控制台,你输入的指令也就不存在了。
写一个用户问答互动程序
# 写一个用户问答互动程序
# 一定要注意不同数据类型之间的相互转换
# 注意:input函数返回的一律是字符串
user_age = input("请输入您现在的年龄:")
user_age_after10 = int(user_age) + 10
print("您10年后的年龄是:" + str(user_age_after10))
输出结果:
请输入您现在的年龄:10
您10年后的年龄是:20
条件判断语句
# 根据女朋友的心情值判断今天晚上能不能打游戏
mood_index = input("女朋友今天的心情值是:")
if int(mood_index) >= 60:
print("今天晚上可以打游戏")
else:
print("今天晚上不能打游戏")
# 通过输入的分数,判断等级
score = input("请输入您的考试分数:")
if int(score) >= 90:
print("优秀")
elif int(score) >= 80:
print("良好")
elif int(score) >= 70:
print("中等")
elif int(score) >= 60:
print("及格")
else:
print("不及格")
关系运算符
and or not 表示与、或、非
和java中的关系运算符类似,可以类比来学习
列表
# 列表数据结构
shopping_list = ["键盘"];
shopping_list.append("显卡")
shopping_list.append("鼠标")
# 打印列表的长度
print(len(shopping_list))
# 移除其中的一个元素
shopping_list.remove("显卡")
print(len(shopping_list))
# 替换其中的一个元素
shopping_list[0] = "DVD"
print(shopping_list)
字典
# 结合input、字典、if判断,做一个查询流行语含义的电子词典程序
# 字典定义,就好比是java中的hashmap
slang_dict = {"a": "aaa", "b": "bbb"}
# 元祖定义,使用元祖的方式进行添加
slang_dict["c"] = "ccc"
slang_dict["d"] = "ddd"
slang_dict["e"] = "eee"
slang_dict["f"] = "fff"
slang_dict["g"] = "ggg"
slang_dict["h"] = "hhh"
slang_dict["i"] = "iii"
slang_dict["j"] = "jjj"
slang_dict["k"] = "kkk"
# 操作
query = input("请输入您想要查询查询的流行语:")
if query in slang_dict:
print("您要查询的流行语的含义是:" + slang_dict[query])
else:
print("抱歉,您要查询的流行语暂未收录")
print("现已收录流行语词条共" + str(len(slang_dict)) + "条")
# 结合input、字典、if判断,做一个查询流行语含义的电子词典程序
# 字典定义,就好比是java中的hashmap
slang_dict = {"a": "aaa", "b": "bbb"}
# 元祖,相当于将 "xiaoming", "23" 整体做为了键,15614232222 作为值
slang_dict["xiaoming", "23"] = "15614232222"
slang_dict["xiaohua", "24"] = "136233369022"
# 操作
print(slang_dict["xiaoming", "23"])
print("现已收录流行语词条共" + str(len(slang_dict)) + "条")
循环遍历
# 根据用户输入的多个数字计算平均数
# 输入q时候退出程序
total = 0
count = 0
num_input = input("请输入您的数字:")
while num_input != "q":
total += int(num_input)
count += 1
num_input = input("请输入您的数字:")
result = 0
if count == 0:
print(result)
else:
result = total / count
print("平均数是:" + str(result))
定义方法
# 计算扇形面试
def calc_sector_area(central_angle, radius):
sector_area = central_angle / 360 * 3.14 * radius ** 2
print("扇形的面积是:" + str(sector_area))
# 使用了return之后,这个函数就有返回值了,如果你不添加,返回的是None
return sector_area;
# 函数调用
calc_sector_area(90, 6)
result = calc_sector_area(180, 6)
print("返回结果是:" + str(result))
引入模块
方式一
import statistics
# 求中位数,先将元素按照从小到大进行排序
print(statistics.median([19,-5,36]))
# 求平均值
print(statistics.mean([19,-5,36]))
方式二
from statistics import median,mean
# 求中位数,先将元素按照从小到大进行排序
print(median([19,-5,36]))
# 求平均值
print(mean([19,-5,36]))
方式三
from statistics import *
# 求中位数,先将元素按照从小到大进行排序
print(median([19,-5,36]))
# 求平均值
print(mean([19,-5,36]))
面相对象编程
# 定义学生类,包含学生id、姓名、各科成绩
class student:
def __init__(self, id, name):
self.id = id
self.name = name
# 定义字典,描述各科成绩
self.score = {"语文": 0, "数学": 0, "英语": 0}
# coure:表示字典的key score: 表示字典的value
def set_score(self, course, score):
# 判断传过来的字典key在字典中有没有存在
if course in self.score:
self.score[course] = score
def print(self):
print(f"学号:{self.id}(姓名:{self.name}")
# 注意:字典里面的每一项其实就好比是java中集合中的每一项,是需要遍历的
for course in self.score:
print(f"{course}:{self.score[course]}")
# 操作
li = student("100", "小曾")
print("学号:" + li.id + ",姓名:" + li.name)
li.set_score("语文", "80")
li.set_score("数学", "85")
li.set_score("英语", "90")
li.print()
输出结果:
学号:100,姓名:小曾
学号:100(姓名:小曾
语文:80
数学:85
英语:90
继承
# -类继承练习:人力系统
# -员工分为两类:全职员工 FullTimeEmployee、兼职员工 PartTimeEmployee。全职和兼职都有"姓名 name"、"工号 id"属性,
# -都具备"打印信息 print_info"(打印姓名、工号)方法。
# -全职有"月薪 monthly_salary"属性,
# -兼职有"日薪 daily_salary"属性、"每月工作天数 work_days"的属性。
# -全职和兼职都有"计算月薪 calculate_monthly_pay"的方法,但具体计算过程不一样。
class Employee:
def __init__(self, id, name):
self.id = id
self.name = name
def print_info(self):
print(f"员工号:{self.id},姓名:{self.name}")
# FullTimeEmployee(Employee)表示FullTimeEmployee继承至Employee类
class FullTimeEmployee(Employee):
def __init__(self, id, name, monthly_salary):
super().__init__(id, name)
self.monthly_salary = monthly_salary
# 全职员工月薪计算方法
def calcu_month_salary(self):
return self.month_salary
# 打印员工信息方法
def print_info(self):
print(f"员工号:{self.id},姓名:{self.name},月工资:{self.monthly_salary}")
class PartTimeEmployee(Employee):
def __init__(self, id, name, daily_salary):
super().__init__(id, name)
self.daily_salary = daily_salary
# 兼职员工计算月工资的方法
def calcu_month_salary(self):
return self.daily_salary * 15
# 打印员工信息方法
def print_info(self):
print(f"员工号:{self.id},姓名:{self.name},月工资:{self.calcu_month_salary()}")
# 操作
xiaoli = FullTimeEmployee("1","小李", 6000)
xiaoli.print_info()
xiaowang = PartTimeEmployee("1","小王", 200)
xiaowang.print_info()
文件读取
在项目下创建一个data.txt文件,以春江花月夜为例
春江潮水连海平,海上明月共潮生。
滟滟随波千万里,何处春江无月明!
江流宛转绕芳甸,月照花林皆似霰;
空里流霜不觉飞,汀上白沙看不见。
江天一色无纤尘,皎皎空中孤月轮。
江畔何人初见月?江月何年初照人?
人生代代无穷已,江月年年望相似。
不知江月待何人,但见长江送流水。
白云一片去悠悠,青枫浦上不胜愁。
谁家今夜扁舟子?何处相思明月楼?
可怜楼上月裴回,应照离人妆镜台。
玉户帘中卷不去,捣衣砧上拂还来。
此时相望不相闻,愿逐月华流照君。
鸿雁长飞光不度,鱼龙潜跃水成文。
昨夜闲潭梦落花,可怜春半不还家。
江水流春去欲尽,江潭落月复西斜。
斜月沉沉藏海雾,碣石潇湘无限路。
不知乘月几人归,落月摇情满江树。
f = open(".\\data.txt", "r", encoding="utf-8")
content = f.read()
print(content)
f.close()
也可以使用下面这种方式自动关流,就不用手动关流
with open(".\\data.txt", "r", encoding="utf-8") as f:
content = f.read()
print(content)
使用readlines方法进行读取
with open(".\\data.txt", "r", encoding="utf-8") as f:
list = f.readlines()
for item in list:
print(item)
输出结果:(下面的输出结果都会有一个换行,因为print()方法在打印的时候默认会有一个换行)
春江潮水连海平,海上明月共潮生。
滟滟随波千万里,何处春江无月明!
江流宛转绕芳甸,月照花林皆似霰;
空里流霜不觉飞,汀上白沙看不见。
江天一色无纤尘,皎皎空中孤月轮。
江畔何人初见月?江月何年初照人?
人生代代无穷已,江月年年望相似。
不知江月待何人,但见长江送流水。
白云一片去悠悠,青枫浦上不胜愁。
谁家今夜扁舟子?何处相思明月楼?
可怜楼上月裴回,应照离人妆镜台。
玉户帘中卷不去,捣衣砧上拂还来。
此时相望不相闻,愿逐月华流照君。
鸿雁长飞光不度,鱼龙潜跃水成文。
昨夜闲潭梦落花,可怜春半不还家。
江水流春去欲尽,江潭落月复西斜。
斜月沉沉藏海雾,碣石潇湘无限路。
不知乘月几人归,落月摇情满江树。
文件写入
# 任务1:在一个新的名字为demo.txt的文件里,写入以下内容:
# 我欲乘风归去
# 又恐琼楼玉宇
# 高处不胜寒
# w:表示开启写模式,如果没有这个文件,Python会为我们创建一个这个文件
# with open(".\\pome.txt", "w", encoding="utf-8") as f:
# f.write("我欲乘风归去\n又恐琼楼玉宇\n高处不胜寒\n")
# 任务2:在上面的poem.txt文件结尾处,添加一下两句
# 起舞弄清影
# 何似在人间
# a:表示开启追加模式
with open(".\\pome.txt", "a", encoding="utf-8") as f:
f.write("起舞弄清影\n何似在人间")
测试用例
TODO:以下程序现在还报错的了,待调试
# 购物清单类
class ShoppingList:
def __init__(self, shopping_list):
self.shopping_list = shopping_list
# 返回购物清单中的商品数量
def get_item_count(self):
return len(self.shopping_list)
# 返回购物清单中的总价格
def get_total_price(self):
totol_price = 0
# 遍历商品累计价格
for price in self.shopping_list.values():
totol_price += price
return totol_price
# 编写购物清单类的测试文件
import unittest
from shopping_list import ShoppingList
# 编写测试类
class TestShoppingList(unittest.TestCase):
def setUp(self):
self.shopping_list = ShoppingList({"纸巾", 8, "帽子", 10, "拖鞋", 15})
# 测试返回商品数量的方法
def test_getShoppingListCount(self):
self.assertEqual(self.shopping_list.get_item_count(), 3)
# 测试总价格
def test_getTotalPrice(self):
self.assertEqual(self.shopping_list.get_total_price(), 23)
· Blazor Hybrid适配到HarmonyOS系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 解决跨域问题的这6种方案,真香!
· 分享4款.NET开源、免费、实用的商城系统
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库