【Python基础知识点总结】

news2025/1/24 11:43:48

Python基础知识点总结

    • 思维导图
    • 基础数据类型
    • 数据结构
    • 基础语法
    • 高级语法
    • 简单编程题
    • 工程项目类
      • 石头剪子布
      • 扑克发牌
      • 学生成绩管理系统

思维导图

在这里插入图片描述

基础数据类型

  • 布尔(bool) True False
  • 字符(str) ‘hello Python’
  • 整型(int) -1,5,88
  • 浮点(float) -2.3,4.1

数据结构

  • 字典 {“position”:“中路”,“hero”:“诸葛亮”}
  • 列表 [“q”,“w”,“e”]
  • 元组 (“q”,“w”,“e”)
  • 集合 {“q”,“w”,“e”}

列表与元组的不同:元组一旦成立,不可改变
列表与集合的不同:集合不能存在重复元素,且不能存在可变类型 (可变类型:如列表、字典)

基础语法

  • 关键字
continue:跳过本次循环,往下执行   (适用于for循环、while循环)
break:打破循环     (适用于for循环、while循环)
  • for循环
for i in range(3):
	print(i)
>>0
>>1
>>2
  • while循环
a=0
while a<3:
	print(a)
	a+=1
>>0
>>1
>>2
  • if 条件语句
用法1:
a=0
if a>2:
	print("a>2")
else:
	print("a<2")
	
用法2:
b=6
if b>1 and b<2:
	print("C")
elif b>2 and b<3:
	print("B")
else:
	print("A")
  • 函数编程
def myfunc():
	return "ok"
print(myfunc())
  • 多文件编程:import
index.py:
def myfunc():
	return "ok"

main.py:
import index
print(index.myfunc())

高级语法

  • for else : for循环正常执行完的情况下,执行else。若for循环体异常,则不执行else
for i in range(3):
	print(i)
else:
	print("ok")
>>0
>>1
>>2
>>ok
  • 三元表达式
for i in range(3):
	print(i)
等价于:
[print(i) for i in range(3)]
>>0
>>1
>>2

简单编程题

1、程序开始运行后,输入一个三位数整数; 程序会根据输入的整数输出百位、十位和个位上的数。例如,输入123,
   输出为:“百:1,十:2,个:3”。
2、输入一个总秒数,计算是几小时几分钟几秒,并一行输出
3、这里有四个数字,分别是:1、2、3、4。提问:能组成多少个互不相同且无重复数字的三位数?各是多少?
4、输出第10个斐波那契数列
5、99乘法表
def test1(number):
    number=str(number)
    print('百:',number[0],'十:',number[1],'个:',number[2])

def test2(time):
    hour=time//3600
    minute=time%3600//60
    second=time%3600%60
    print('时:',hour,'分钟:',minute,'秒数:',second)

def test3():
    a=[]
    for i in range(1,5):
        for k in range(1, 5):
            for n in range(1, 5):
                if i != k and i!=n and k!=n:
                    print(i,k,n)
                    a.append(str(i)+str(k)+str(n))

def test4():
    a=[0,1]
    for i in range(8):
        a.append(a[-1]+a[-2])
    print('第十个数是',a[-1])

def test5():
    for i in range(1,10):
        for k in range(1,i+1):
            print(f"{k}*{i}={i*k}",end=' ')
        print(end='\n')

工程项目类

石头剪子布

功能:
石头剪子布游戏,人机对战

编程思路:
1、采用字典rule列出游戏规则:1代表石头,2代表剪刀,3代表布
2、采用二维数组win表示玩家用户赢的可能
3、如果用户的输入不是‘1’,‘2’,’3‘,则判定输入不符合规则
4、由电脑随机生成数字代表电脑出拳
5、如果user==computer,则平局;如果符合win,则玩家用户赢;除此之外便是电脑赢

源代码

import random
import time

rule={1:'石头',2:'剪刀',3:'布'}
win=((1,2),(2,3),(3,1))
while 1:
    user=input('请出拳(1:石头 2:剪刀 3:布):')
    
    if user not in ['1','2','3']:
        print('输入不正确')
        time.sleep(1)
        continue
        
    user=int(user)
    computer=random.randint(1,3)
    
    if user==computer:
        print(f'你出{rule[user]},电脑出{rule[computer]},平局')
    elif (user,computer) in win:
        print(f'你出{rule[user]},电脑出{rule[computer]},你贏了')
    else:
        print(f'你出{rule[user]},电脑出{rule[computer]},电脑赢了')
    if input('继续:Y 退出:除Y任意键') == 'Y':
        continue
    break

在这里插入图片描述

扑克发牌

功能:
3人斗地主随机发牌系统。共54张扑克牌,每人17张基础牌,随机地主再发3张牌

编程思路:
1、枚举所有花色,除大王外所有牌值,运用三元表达式遍历得到52张牌,再添加大小王,凑齐54张牌,创建deal函数进行发牌.
2、random.sample从puke中随机抽取17张牌添加到lis列表中.再将抽取到的17张牌从puke中移除.循环3次.最后puke中只剩下3张地主牌.
3、此时lis中有三组牌,故索引为0,1,2.利用random.randint(0,2)随机生成一个数对应索引,将剩余的3张牌进行分配.故完成扑克发牌

源代码

import random

color=['♠','♣','♥','♦']
numbers=['A','2','3','4','5','6','7','8','9','10','J','Q','K']

puke=[i+k for i in color for k in numbers]
puke.extend(['大王','小王'])

def deal(puke:list):
    lis=list()
    for i in range(3):
        lis.append(random.sample(puke,17))
        for k in lis[i]:puke.remove(k)
    else:
        lis[random.randint(0,2)].extend(puke)
    return lis
    
[print('player:'+str(i)) for i in deal(puke)]

在这里插入图片描述

学生成绩管理系统

功能
1、添加学生信息
2、删除学生信息
3、修改学生信息
4、查询学生信息
5、获取所有学生信息
6、退出系统

编程思路
1、创建列表作为学生系统的总数据管理。定义字典来储存每一组学生。
2、使用while循环不断问讯实现控制台交互
3、使用1-6的选择模式进行相关系统操作,不同操作对应不同的类中函数
4、所有操作都围绕列表、和字典进行实现

stu_msg=[]

while 1:
    print('''
    1、添加学生成绩
    2、删除学生成绩
    3、修改学生成绩
    4、查询学生成绩
    5、获取学生成绩
    6、退出
    ''')
    n=input("请输入你的选择:")

    if n=='1':
        stu_msg.append({"id":input('请输入要录入的学生学号:'), "name":input('姓名:'), "math":input('数学:'),"english": input('英语:'), "python":input('python:')})
    elif n=='2':
        id=input("你要删除的id:")
        for index in range(len(stu_msg)):
            if id == stu_msg[index]['id']:
                del stu_msg[index]
                print('删除成功')
                break
        else:
            print("没有该学生")
    elif n == '3':
        id = input("你要修改的id:")
        for stu in stu_msg:
            if id == stu['id']:
                print(stu)
                stu.update({"name":input('姓名:'), "math":input('数学:'),"english": input('英语:'), "python":input('python:')})
                print('修改成功')
                break
        else:
            print("没有该学生")
    elif n == '4':
        id = input("你要查询的id:")
        for stu in stu_msg:
            if id == stu['id']:
                print(stu)

                break
        else:
            print("没有该学生")
    elif n == '5':
        for i in stu_msg:
            print(i)
    elif n == '6':
        break
    else:
        print('您输入有误,请重新输入')
        continue

print('成功退出')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/521624.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

springboot+vue交流互动系统(源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的交流互动系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 &#x1f495;&#x1f495;作者&#xff1a;风歌&a…

Springmvc练习二

1、网站练习&#xff0c;先清楚原理&#xff0c;便于拓展 注意一点就是页面定位的问题&#xff0c;如果你springmvc文件没有配置加上后缀“.jsp”的设置记得在网站控制器源代码的基础上加上“.jsp” 2、简单尝试一下就知道&#xff0c;这里所谓的参数绑定无非就是在java代码的…

【ChatGPT】ChatGPT国内镜像网站集合

Yan-英杰的主页 悟已往之不谏 知来者之可追 C程序员&#xff0c;2024届电子信息研究生 目录 什么是ChatGPT镜像&#xff1f; 亲测&#xff1a; 一、二狗问答(AI对话) 二、AiDuTu 三、WOChat 四、ChatGPT(个人感觉最好用) 我们可以利用ChatGPT干什么&#xff1f; 一、三分…

Java EE 初阶---多线程(二)

目录 四、多线程案例之--单例模式 4.1 单例模式 4.2 怎么去设计一个单例&#xff1f; 饿汉模式 懒汉模式 4.3 两种模式的总结 四、多线程案例之--单例模式 4.1 单例模式 是校招中最常考的设计模式之一. 啥是设计模式&#xff1f; 设计模式好比象棋中的 " 棋谱 "…

MaterialDesignInXamlToolkit 初学项目实战(1)首页搭建

前言 最近在学WPF&#xff0c;由于人比较烂&#xff0c;有一个星期没怎么动代码了。感觉有点堕落。现在开始记录WPF项目&#xff0c;使用MaterialDesignInXamlToolkit。 环境搭建 如果没下载MaterialDesign 的源码 github源码运行 在Nuget里面引入MaterialDesign Materia…

【ChatGPT镜像网站+MindShow高效生成PPT,保姆级安装教程】

&#x1f680; AI破局先行者 &#x1f680; &#x1f332; AI工具、AI绘图、AI专栏 &#x1f340; &#x1f332; 如果你想学到最前沿、最火爆的技术&#xff0c;赶快加入吧✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;CSDN-Java领域优质创作者&#x1f3c6;&am…

一、基础算法9:区间合并 模板题+算法模板(区间合并)

文章目录 算法模板离散化题目模板 模板题区间和原题链接题目题解思路 算法模板 离散化题目模板 // 将所有存在交集的区间合并 void merge(vector<PII> &segs) {vector<PII> res;sort(segs.begin(), segs.end());int st -2e9, ed -2e9;for (auto seg : segs…

SD-MTSP:遗传算法GA求解单仓库多旅行商问题(提供MATLAB代码,可以修改旅行商个数及起点)

一、单仓库多旅行商问题 多旅行商问题&#xff08;Multiple Traveling Salesman Problem, MTSP&#xff09;是著名的旅行商问题&#xff08;Traveling Salesman Problem, TSP&#xff09;的延伸&#xff0c;多旅行商问题定义为&#xff1a;给定一个&#x1d45b;座城市的城市集…

SpringSecurity和Shiro---权限设置

在 Web 开发中&#xff0c;安全一直是非常重要的一个方面。安全虽然属于应用的非功能性需求&#xff0c;但是应该在应用开发的初期就考虑进来。如果在应用开发的后期才考虑安全的问题&#xff0c;就可能陷入一个两难的境地&#xff1a;一方面&#xff0c;应用存在严重的安全漏洞…

15-JavaScript-内部JS、外部JS、数据类型、关键词

1、内部JS&#xff1a;是在HTML文件中直接嵌入JavaScript代码的一种方式。使用<script>标签来定义JavaScript代码块。通常情况下&#xff0c;我们会将JavaScript代码放在文档的<head>或<body>标签内。 <!DOCTYPE html> <html> <head><…

MySQL-----事务管理

文章目录 前言一、什么是事务二、为什么会出现事务三、事物的版本支持四、事物的提交方式五、事务常见的操作方式六、事务隔离级别如何理解隔离性1隔离级别查看与设置隔离性读未提交【Read Uncommitted】读提交【Read Committed】可重复读【Repeatable Read】串行化【serializa…

ChatGPT 联网和插件功能,下周起可直接使用,无需排队!

夕小瑶科技说 分享 来源 | 新智元 OpenAI和谷歌&#xff0c;已经打得急红了眼&#xff0c;ChatGPT Plus用户&#xff0c;下周就可以体验联网和插件功能&#xff0c;无需再排队。鲨疯了&#xff0c;真的鲨疯了&#xff01; ChatGPT&#xff0c;下周开始联网&#xff0c;并开放插…

DAY 57 MySQL数据库的事务

事务的概念 事务是一种机制、一个操作序列&#xff0c;包含了一组数据库操作命令&#xff0c;并且把所有的命令作为一个 整体一起向系统提交或撤销操作请求&#xff0c;即这一组数据库命令要么都执行&#xff0c;要么都不执行。事务是一个不可分割的工作逻辑单元&#xff0c;在…

Python突破JS加密限制,进行逆向解密

前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 目录标题 前言开发环境:模块使用:逆向目标逆向过程参数 JS 加密关键代码Python 登录关键代码尾语 &#x1f49d; 开发环境: Python 3.8 Pycharm 模块使用: time >>> 时间模块&#xff0c;属于内置&#xff0c;无…

lol由于找不到vcruntine140_1.dll文件,vcruntime140_1.dll修复方法

家人们有没有遇到过打开游戏或者软件提示由于找不到vcruntime140_1.dll&#xff0c;无法继续执行此代码的情况&#xff0c;是不是不知道怎么修复呢&#xff1f;Vcruntime140_1.dll是一个Windows系统文件&#xff0c;它是Microsoft Visual C Redistributable for Visual Studio …

快速搭建测ceph

一、cephadm介绍 Cephadm是一个由Ceph社区维护的工具&#xff0c;它用于在Ceph集群中管理和部署Ceph服务。它是一个基于容器化的工具&#xff0c;使用了容器技术来部署Ceph集群的不同组件。 使用Cephadm&#xff0c;管理员可以通过简单的命令行界面在整个Ceph集群中进行自动化…

Python递归树结构,回溯法深度优先、广度优先详解,代码实现

Python实现&#xff0c;递归算法&#xff0c;深度优先、广度优先 其实递归说白了就是循环本身函数&#xff0c;只不过下次循环的输入值是上次循环的结果值。关于递归算法&#xff0c;我经常把它用在搜索、计算中。我们来看一个简单的例子&#xff1a; 计算Demo 要实现1&…

高数杂项1

一些口诀 长杠变短杠&#xff0c;开口换方向 其实意思是底下这个 C ∩ D ‾ C ‾ ∪ D ‾ \overline{C \cap D} \overline C \cup \overline D C∩DC∪D 可导必可微&#xff0c;可微必可导 二者互为充要条件 可导必定连续&#xff0c;连续未必可导。连续必定可积,可微未必可积…

django-restful-framework基础知识

DRF 总体设计框架流程 DRF大体的工作流程如下图&#xff1a; 其中&#xff1a;这里的Request不再是Django默认的HttpRequest对象&#xff0c;而是REST Framework提供的扩展了HttpRequest类的Request类对象。 1. Web应用模式 在开发Web应用中&#xff0c;有两种应用模式&…

【sentinel】授权规则详解及源码分析

之前我们在配置流控规则时&#xff0c;可以根据origin参数来对调用方进行限流。 很多时候&#xff0c;我们需要根据调用方来限制资源是否通过&#xff0c;这时候可以使用Sentinel的黑白名单控制的功能&#xff0c;这就是授权规则。 黑白名单也是根据资源的请求来源&#xff0…