IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python基础快速上手 -> 正文阅读

[Python知识库]Python基础快速上手

序言

各编程语言都有各自复杂的语法和标准,但是从我自身微薄的见识来看,各语言间的编程思想大方向是通用的,唯一不同的是各功能的语法,复杂语法也是由基础语法构成。
举个栗子,无论是c、java、js和python等都有 注释、输出、输入、变量、判断、循环、函数、类和异常捕获 等,所以我认为只要熟悉一门语言后,再去了解其他语言的基础语法,就可以达到快速上手的目的。

博主经过一段时间了解学习后,认为以下的学习路径是比较适合自己的思维,所以特此分享给大家参考。

如果对某一模块的细节有疑惑,推荐 菜鸟教程 或 其他教程网站学习

Tip
① 因为在写文章时为了摘出最重要的知识,而省略了大量的细节
② 实践是最好的老师,看的再多也不如自己敲一遍记的深刻

如果有哪些地方写错还望海涵,可以私信或评论指出,我及时更改,感谢🙏同时也欢迎更多人来指导交流~



1. 环境搭建

本案例中使用的Python版本号3.8.0,Pycharm版本号为2021.2

https://www.python.org/downloads 这是Python官网的下载地址,建议使用稳定版前2,3个版本

https://www.jetbrains.com/pycharm/download/#section=windows 这是Pycharm官网的下载地址,如果只是学习了解,可以仅下载免费的Community版

在此安装细节就不展示了,重要的是更改文件的安装路径,剩下的基本都是next


2. 注释

2.1 单行注释

# 我是单行注释,可以使用快捷键"ctrl + /"快速生成

2.2 多行注释

"""
	我是多行注释
	我是多行注释
"""



3. print() 输出

在python中每行语句不需要以分号结尾

# 普通输出
print('Hello World') 				# Hello World


# 格式化输出(Python3.6 以上版本才可以使用)
string = 'Hello World'
print(f'{string}!') 				# Hello World!

print方法打印后会默认会换行,如果不需要可以添加end参数

print('Ka', end='')
print('zi')



4. input() 输入

string = input('请输入名字:')		# 输入Kazi

print(f'我的名字是{string}')			# 我的名字是Kazi
print(type(string)) 				# <class 'str'>


# 注意input()返回的值一定是字符串格式,如果需要得到数值类型,需要进行类型转换。如int()或float()
num1 = input('请输入金额:') 		# 10
print(type(num1)) 					# <class 'str'>
num2 = int(input('请输入金额:')) 	# 10
print(type(num2)) 					# <class 'int'>



5. 变量

Python 中的变量赋值不需要类型声明

命名规则:

  • 由字母、数字和下划线(_)组成

  • 不能由数字开头

  • 严格区分大小写

  • 不能使用内置关键字作为变量名称,可使用help(‘keywords’)查看内置关键字

推荐的变量命名规则:

变量推荐写法
变量名 or 函数名 or 模块名全小写下划线(get_data)
类名大驼峰(Student)
常量全大写下划线(MAX_NUM)
私有属性以双下划线开始(__age)
魔法变量以双下划线开始,双下划线结尾(__ init __)



6. 数据类型

标准类型方法名相关方法举例
整型int1
浮点型float1.0
字符strfind()、replace()、split() 、join()等‘字符串’
布尔booleanTrue
列表listappend()、remove()、reverse()、sort()等[1, 2, 3]
元组tuple(1, 2, 3)
字典dict{‘name’: ‘kazi’, ‘age’: 18}
集合setadd()、remove()、pop(){1, 2, 3}
  • 列表list可以增删改查操作,但是元组tuple只能查找
  • 集合set类型会自动去重,且是无序的
  • 使用type(变量名)可以查看该变量的数据类型



7. 运算符

7.1 算术运算符

运算符含义
+
-
*
/
//整除(向下取整,如9 // 4 输出 2)
%取余
**幂指数 (2**3,2的三次方)

7.2 复合赋值运算符

运算符等价于
+=先进行加法运算再赋值(a += b 等价于 a = a + b)
-=同上,不再赘述
*=
/=
//=
%=
**=

7.3 逻辑运算符

运算符含义
and与运算
or或运算
not非运算

只有空值和None转换成布尔值是False,其他是True

print(None or 0 or 1) # 1



8. if判断

冒号代表条件判断结束

在Python中没有大括号{},是通过缩进来表示程序的上下级关系

语法

if 条件判断:
	print('条件成立执行的代码')
elif 条件判断:
	print('条件成立执行的代码')
else:
    print('条件成立执行的代码')

三目运算符

num1 = 5
num2 = 3

num = num1 if num1 > num2 else num2
print(num) # 5



9. 循环


9.1 两大关键字

continue:跳过本次循环,继续下一次循环

break:终止距离最近的循环结构


9.2 while循环

语法

while 循环条件:
	...循环体1
    ...循环体2
    ...
else: # 可选
    print('在循环结构正常结束时会执行(没有执行break)')

9.3 for循环

语法

for 临时变量 in 序列:
	...循环体1
    ...循环体2
    ...
else: # 可选
    print('在循环结构正常结束时会执行(没有执行break)')
for i in range(0,3):
	print(i)
	
"""
输出结果:
	0
	1
	2
"""
list1 = [0, 1, 2]
for i in list1:
    print(i)
    
"""
输出结果:
	0
	1
	2
"""

列表推导式

list1 = [i for i in range(5)]

print(list1) # [0, 1, 2, 3, 4]



10. 函数


10.1 普通函数

语法

def 函数名称([参数1,参数2...]):
    函数体
    ..
    [return 返回值]
def sum(x, y):
    return x + y

print(sum(1,2)) # 3

函数定义不能为空。如果某种原因写了无内容的函数定义,使用 pass 语句来避免错误

def student_info():
    pass

含有不定长参数的函数

# 不定长元组参数
def user_info(*args):
    print(f'我的名字是{args[0]}, 今年{args[1]}')
    
user_info('kazi', 18)

# 不定长字典参数
def book_info(**kwargs):
    print(f"书籍名称是{kwargs['name']},价格为{kwargs['price']}元")


book_info(name='Python从入门到入土', price=33.3)

10.2 lambda表达式(匿名函数)

语法

变量名 = lambada 形参 : 返回值或表达式

# def fn1():
#    return 100
# 等价于
fn1 = lambda : 100

# def fn2(num1,num2):
#    return num1 + num2
# 等价于
fn2 = lambda num1, num2: num1 + num2

10.3 闭包和装饰器

需求:如果在函数执行完毕后,我们依然希望局部变量保存在内存中不会被清理。

解决:使内存中的局部变量保留

# 闭包三步走:有嵌套,有引用,有返回

def outer(fn):
    a = 10
    def inner():		# 有嵌套
        return a		# 有引用
        
    return inner		# 有返回


func = outer() 			# 相当于把inner函数赋值给func
print(func)	 # 10		# 执行inner函数

装饰器

本质上也是个闭包函数

# 装饰器四步走:有嵌套,有引用,有返回,有额外功能

def outer(fn):
    def inner():				# 有嵌套
        print('登录功能')		 # 有额外功能
        fn() 					# 有额外功能
        print('-' * 20)
        
    return inner				# 有返回

# 语法糖
@outer
def comment():
    print('评论功能')
    
comment()						

"""
输出结果:
    登录功能
    评论功能
    ------------------
"""



11. 异常捕获

语法

try:
    可能出现异常的代码
except [Exception as e]:
    出现异常,则执行的代码
else:
    如果try语句中的代码没有出现异常,则执行else代码
finally:
    无论程序是否出现异常,系统在异常处理后都会自动执行finally



12. 模块

12.1 导入方式

# 使用import导入模块
import 模块名
import 模块名 as 别名 # 别名建议使用大驼峰

# 调用方式
模块名.函数名()
# 使用from...import导入模块
from 模块名 import *
from 模块名 import 函数名1,函数名2...

# 调用方式
函数名1()

12.2 内置模块

常见的内置模块:time、random、os 等

import random

print('生成0-10的随机数:', random.randint(0,10))

12.3 自定义模块

模块名称不能是中文,不能以数字开头

自定义的模块名称不能和内置模块名相同,如time、random

# demo1.py
def sum(x,y):
    return x + y
# demo2.py
from demo1 import sum

print(sum(1, 2)) # 3



13. 文件

语法

文件对象 = open(file_name, mode, [encoding])

name:打开的文件名 或 包含文件所在的具体路径

mode:设置打开文件的模式,默认为r,只读模式

以下模式仅针对文本类型的读写操作(常用)

模式效果
r只读
w只写。打开文件并清空原内容,如果文件不存在则新建
a追加。打开文件但不清空原内容,在原内容尾部追加内容,如果文件不存在则新建

添加b字符可以组成成针对二进制格式文件(图片、视频和音频等)的读写操作。如rb、wb、ab

encoding:编码格式。默认为gbk


13.1 读文件

三种方法:read(),readline(),readlines()

python.txt

Life is Short, i study Python!
kazi
18

文件对象.read([size])

  • 读取size字节文本内容,不写则默认读取全部
# read.py
f = open('python.txt', 'r')
content = f.read()
print(content)
f.close()

"""
输出结果:
	Life is Short, i study Python!
	Kazi
	18
"""

文件对象.readline()

  • 一次读取一行内容
  • 每运行一次readline()函数,其就会将文件的指针向下移动一行。通常与while死循环配合使用
  • 适合读取大文件
# readline.py
f = open('python.txt', 'r')

while True:
    content = f.readline()
    if not content:
        break
    else:
        print(content)

f.close()

"""
输出结果:
	Life is Short, i study Python!
	Kazi
	18
"""

文件对象.readlines()

  • 一次性读取文件的所有内容
  • 返回结果是一个列表,列表中的每一个元素都是文件中的一行。通常与for循环配合使用
  • 适合读取小文件
# readlines.py
f = open('python.txt', 'r')

# ['Life is Short, i study Python!\n', 'aaaa\n', 'bbbb']
print(f.readlines())

"""
输出结果:
	['Life is Short, i study Python!\n', 'Kazi\n', '18']
"""

13.2 写文件

文件对象.write(待写入的内容)

  • 只能写入字符串格式的内容
# demo.py
f = open('python.txt', 'w', encoding='utf-8')

f.write('我是Kazi')

13.3 关闭文件

文件打开以后需要占用计算机资源,不关闭则会造成资源浪费

文件对象.close()


拓展内容:
当代码出现异常时,可能会导致文件没有执行close()语句,导致资源浪费,所以可以使用内置方法with解决

自动调用关闭文件操作,即使出现异常也会自动执行关闭文件操作

with open('python.txt', 'r') as f:
	content = f.read()

print(content)



14. 类

语法

class 类名(object):
	# 属性
    # 方法
    
# 类的实例化
对象 = 类名()

举个栗子

# demo.py
class Person(object):
    # 初始化属性
    # __init__是魔法方法,代表对象创建时默认执行的方法
    # self代表对象本身,是必要参数
    def __init__(self,name, age):
        self.name = name
        self.age = age
        
    def introduce(self)
     	print(f'我是{self.name},今年{self.age}岁')
        
student = Person('Kazi'18)
student.introduce()

"""
输出结果:
	我是Kazi,今年18岁
"""



15. 练手题目

需求分析:
	创建一个学员信息管理系统
	
    进入系统显示系统功能界面,功能如下:
    1、添加学员信息
    2、删除学员信息
    3、修改学员信息
    4、查询学员信息(只查询某个学员)
    5、遍历所有学员信息
    6、保存学员信息
    7、退出系统
    
    系统共7个功能,用户根据自己需求选取

参考代码

student.py

# 定义一个Student类
class Student(object):
    # 初始化属性信息
    def __init__(self, name, age, gender, mobile, description):
        self.name = name
        self.age = age
        self.gender = gender
        self.mobile = mobile
        self.description = description

    # 用于打印输出学员信息
    def __str__(self):
        return f'===> 姓名:{self.name},年龄:{self.age},性别:{self.gender},电话:{self.mobile},简介:{self.description}'

student_cms.py

from student import Student
from os import path
from time import sleep


# 确认是否步骤执行
def is_continue(string):
    flag = input(f"是否{string}(Y/N):")
    if flag.lower() == 'y':
        return True
    else:
        return False


class StudentCMS(object):
    # 初始化
    def __init__(self):
        # 保存所有学员对象信息
        self.studentList = []

    # 帮助文档
    @staticmethod
    def show_help():
        print('*' * 40)
        print('学员信息管理系统(面向对象版)')
        print('-' * 20)
        print('\t1.添加学员信息')
        print('\t2.删除学员信息')
        print('\t3.修改学员信息')
        print('\t4.查询学员信息')
        print('\t5.遍历所有学员信息')
        print('\t6.保存学员信息')
        print('\t0.退出系统')
        print('*' * 40)

    # 添加
    def add_student(self):
        while True:
            name = input('添加学生的姓名:')

            for item in self.studentList:
                if name == item.name:
                    print('已有相同名字,请重新输入')
                    break
            else:
                break

        age = int(input('添加学生的年龄:'))
        gender = input('添加学生的性别:')
        mobile = input('添加学生的电话:')
        description = input('简介:')
        # 注意,这里添加的是Student对象,不是字典
        self.studentList.append(Student(name, age, gender, mobile, description))
        print('添加成功,请注意保存数据')

    # 删除
    def del_student(self):
        name = input("需要删除哪位学生(姓名)?")

        for item in self.studentList:
            if item.name == name:
                if is_continue('删除'):
                    self.studentList.remove(item)
                    print('删除成功,请注意保存数据')
                    break
                else:
                    print('未删除学生,返回菜单')
                    return
        else:
            print('该学生姓名不存在')
            return

    # 修改
    def edit_student(self):
        name = input("需要修改哪位学生(姓名)?")
        for item in self.studentList:
            if item.name == name:
                item.name = input('请输入修改后的学员姓名:')
                item.age = int(input('请输入修改后的学员年龄:'))
                item.gender = input('请输入修改后的学员性别:')
                item.mobile = input('请输入修改后的学员电话:')
                item.description = input('请输入修改后的学员简介:')
                print('修改成功')
                break
        else:
            print('error:该学生姓名不存在')
            return

    # 查询单个学生信息
    def show_student(self):
        name = input("查询哪位学生(姓名)信息?")
        flag = True
        for item in self.studentList:
            if name in item.name:
                print(item)
                flag = False

        if flag:
            print('无学生信息')

    # 遍历所有学生信息
    def show_all(self):
        if not self.studentList:
            print('无学生数据,返回菜单')
        else:
            for item in self.studentList:
                print(item)

    # 读取数据
    def load_student(self):
        if not path.exists('student.txt'):
            # 无文件:新建
            with open('student.txt', 'w', encoding='utf-8') as file:
                file.write('')
        else:
            # 有文件:读取内容
            with open('student.txt', 'r', encoding='utf-8') as file:
                content = file.read()
                if content:
                    # 1、将字符串格式转成列表
                    data = eval(content)
                    # 2、将每个元素通过Student类实例化成对象,最后存储到学生列表中
                    self.studentList = [
                        Student(item['name'], item['age'], item['gender'], item['mobile'], item['description']) for item
                        in
                        data]
                else:
                    return

    # 保存数据
    def save_data_to_file(self):
        with open('student.txt', 'w', encoding='utf-8') as file:
            # 将列表中的对象结构转化成字典
            data = [item.__dict__ for item in self.studentList]
            file.write(str(data))
            print('数据已成功保存')

        file.close

    # 对象执行的入口方法
    def start(self):
        # 只需要在开始时读取数据
        self.load_student()
        print('正在玩命加载中...', end='\n\n')
        sleep(1)
        while True:
            StudentCMS.show_help()
            try:
                number = int(input('请输入您要执行的功能编号:'))

                if number == 1:
                    self.add_student()
                elif number == 2:
                    self.del_student()
                elif number == 3:
                    self.edit_student()
                elif number == 4:
                    self.show_student()
                elif number == 5:
                    self.show_all()
                elif number == 6:
                    self.save_data_to_file()
                elif number == 0:
                    if is_continue('退出系统'):
                        print('退出系统成功,感谢您使用学员信息管理系统!')
                        break
                    else:
                        print('未退出,返回菜单')
                else:
                    print('很抱歉,您输入的编号有误,请重新输入')
            except Exception as e:
                print(f'输出错误日志----{e}')
                print('发送异常,系统退出')

main.py

from student_cms import StudentCMS

# 执行入口
if __name__ == '__main__':
    cms = StudentCMS()
    cms.start()
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-09-13 11:10:10  更:2022-09-13 11:13:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 10:16:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码