240129 Python、网络基础学习

本文概述了Python编程的基础知识,包括变量和数据类型、条件语句、循环、函数、字符串操作、列表元组字典集合、文件操作,以及网络基础知识如OSI模型、TCP/IP模型、IP地址、DNS和HTTP/HTTPS协议。还介绍了一个猜数字游戏和网络基础概念的应用实例。
摘要由CSDN通过智能技术生成

一、学习笔记

1、基本语法

- 变量和赋值
  使用 = 运算符进行变量赋值,例如:x = 5

- 数据类型
  常见数据类型包括整数 int, 浮点数 float, 字符串 str, 列表 list, 元组 tuple, 字典 dict, 集合 set

例:
name = "Alice"
age = 25
height = 1.75
fruits = ["apple", "banana", "orange"]

 

 2. 控制流

- 条件语句
  使用 if, elif, else 进行条件判断

例:
if age >= 18:
    print("成年人")
else:
    print("未成年人")

 

- 循环
  for 循环用于遍历序列
  while 循环在满足条件时执行

例:
for fruit in fruits:
    print(fruit)

counter = 0
while counter < 5:
    print(counter)
    counter += 1

 

3. 函数

- 函数定义与调用

例:
def greet(name):
    print("Hello, " + name + "!")

greet("Bob")
 

- 参数与返回值
  函数可以接受参数并返回值

例:
def add_numbers(x, y):
    return x + y

result = add_numbers(5, 3)
print(result)

 

4. 字符串处理

- 字符串拼接

例:
first_name = "John"
last_name = "Doe"
full_name = first_name + " " + last_name
print(full_name)

 

- 字符串格式化

例:
age = 30
message = "I am {} years old.".format(age)
print(message)

 

5. 列表和元组

- 列表(List)
  有序、可变的数据结构

例:
numbers = [1, 2, 3, 4, 5]

 

- 元组(Tuple)
  有序、不可变的数据结构

例:
coordinates = (3, 4)

 

6. 字典和集合

- 字典(Dictionary)
  无序、键值对的数据结构

例:
person = {"name": "Alice", "age": 25}

 

- 集合(Set)
  无序、唯一元素的数据结构

例:
unique_numbers = {1, 2, 3, 4, 5}

 

7. 文件操作

- 读写文件

例:
- 写入文件
with open("example.txt", "w") as file:
    file.write("Hello, Python!")

- 读取文件
with open("example.txt", "r") as file:
    content = file.read()
    print(content)

 

 

这是一个猜数字小游戏

 

import random

def guess_number():
    secret_number = random.randint(1, 100)  # 生成一个1到100之间的随机数
    attempts = 0

    print("这里是猜数字游戏~")
    print("我已经想好了一个1~100的数字,你猜猜是哪个数字呢")

    while True:
        try:
            user_guess = int(input("请输入你的猜测:"))
            attempts += 1

            if user_guess < secret_number:
                print("太小了,再试试吧")
            elif user_guess > secret_number:
                print("太大了,再试试吧")
            else:
                print(f"恭喜你,你猜对了啊哈哈哈哈哈哈哈哈哈!\n秘密数字是 {secret_number},你用了 {attempts} 次猜中它")
                break
        except ValueError:
            print("请输入一个有效的数字。")

if __name__ == "__main__":
    guess_number()

 

aaa165849cd940898f64046089c9a08e.png

- import random 是 Python 中用于引入名为 random 的模块的语句,在这个语句执行后,就可以使用 random 模块中提供的函数和方法。
- random 模块提供了生成伪随机数的功能,这些随机数可以用于各种应用,例如在游戏中创建随机事件,生成测试数据,或者在数据科学领域进行模拟等。

例如使用math模块:

import math

printf(math.sqrt(36))

 

__name__ 是一个特殊的内置变量,它表示当前模块的名称,当一个 Python 脚本被执行时,__name__ 的值会被设置为 "__main__",因此,if __name__ == "__main__": 这个条件判断检查当前模块是否是主程序直接执行的,而不是被其他模块导入的。
如果脚本是被直接执行的,那么 guess_number() 函数会被调用,如果脚本被作为模块导入到其他脚本中,那么 guess_number() 就不会被自动执行。

用随机数的思路可以编写一个随机点名的小程序。

 

学生管理系统(随机点名)

import random

class StudentManager:  #创建了一个类
    def __init__(self):
        self.students = {} #初始化空字典

    def add_student(self, student_id, student_name):
        self.students[student_id] = student_name
        print(f"学生 {student_name}(学号 {student_id})添加成功")

    def delete_student(self, student_id):
        if student_id in self.students:
            deleted_name = self.students.pop(student_id)
            print(f"学生 {deleted_name}(学号 {student_id})已成功删除")
        else:
            print(f"学号 {student_id} 不存在,无法删除")

    def update_student(self, student_id, new_name):
        if student_id in self.students:
            self.students[student_id] = new_name
            print(f"学生 {new_name}(学号 {student_id})的信息已成功更新")
        else:
            print(f"学号 {student_id} 不存在,无法更新学生信息")

    def random_call(self):
        if not self.students:
            print("请先录入学生信息")
        else:
            random_student_id = random.choice(list(self.students.keys()))
            random_student_name = self.students[random_student_id]
            print(f"随机点名结果:学号 {random_student_id},姓名 {random_student_name}。")

def main():
    student_manager = StudentManager() #创建一个对象,可以访问StudentManager中定义的方法和属性

    while True:
        print("\n学生管理系统")
        print("1. 录入学生信息")
        print("2. 删除学生信息")
        print("3. 修改学生信息")
        print("4. 随机点名")
        print("5. 退出")

        choice = input("请选择:")

        if choice == "1":
            student_id = input("学号:")
            student_name = input("姓名:")
            student_manager.add_student(student_id, student_name)
        elif choice == "2":
            student_id = input("要删除的学号:")
            student_manager.delete_student(student_id)
        elif choice == "3":
            student_id = input("要修改的学号:")
            new_name = input("新的姓名:")
            student_manager.update_student(student_id, new_name)
        elif choice == "4":
            student_manager.random_call()
        elif choice == "5":
            print("程序已退出")
            break
        else:
            print("bibibi-错误-请重新输入。")

if __name__ == "__main__":
    main()

 

61a5084511844c4ea26b9411d59efd92.png

 

pop() 是字典的一个方法,用于删除并返回指定键的值。

 

二、网络基础

网络基础


1. OSI模型
OSI模型(Open Systems Interconnection)是一个用于理解和设计网络架构的参考模型,分为七层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层


2. TCP/IP模型
TCP/IP模型是实际互联网采用的协议栈,包含四层:网络接口层、网络层、传输层、应用层


3. IP地址与子网掩码
IP地址是用于在网络上唯一标识设备的地址,子网掩码用于划分网络和主机部分


4. 网关与路由器
网关是连接不同网络的设备,而路由器是在不同网络之间转发数据包的设备


5. DNS(Domain Name System)
DNS用于将域名转换为对应的IP地址,使得用户能够通过易记的域名访问互联网上的资源


6. HTTP与HTTPS
HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的协议,而HTTPS是在HTTP基础上加入了安全性措施的协议,使用SSL/TLS进行加密传输

 


HTTP协议


1. 请求与响应
HTTP是一种基于请求-响应模式的协议。客户端发送请求,服务器返回响应


2. URL(Uniform Resource Locator)
URL是用于标识和定位互联网上资源的字符串,包括协议、主机名、路径等组成部分


3. HTTP方法
常见的HTTP方法包括GET(获取资源)、POST(提交数据)、PUT(更新资源)、DELETE(删除资源)等


4. 状态码
HTTP响应中的状态码表示服务器对请求的处理结果,例如200表示成功,404表示资源未找到,500表示服务器内部错误等


5. 请求头与响应头
请求头包含了客户端的信息和请求的附加信息,而响应头包含了服务器的信息和响应的附加信息


6. Cookie与Session
Cookie用于在客户端存储数据,而Session是在服务器端存储数据的机制,通常通过Cookie来标识


7. 缓存
缓存可以提高性能,但需要注意缓存的有效性和更新机制


8. 跨域资源共享(CORS)
CORS是一种机制,允许服务器在响应中设置HTTP头,使得浏览器可以绕过同源策略,允许跨域访问资源

 

 

  由于中间去尔滨玩了五天(因为是去年就和朋友计划好的所以没有办法取消计划,当然是边玩边学👉🏻👈🏻)所以学的不是很扎实,keep trying🤯

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值