Python基础入门

简介: Python基础入门

安装python解释器 下一步 在下一步 完成后 win+r 输入cmd  python


编写第python一个程序

print("hello,world!")

python模块的安装与使用

安装

pip install 模块名

列出所有模块

pip list

模块的使用

import 模块名from 模块名import 对象名

python 序列

列表

// 创建列表
student = ['number','id','age']
print(student)
# ['number', 'id', 'age']
// list() 函数将元组 字符串 字典等可迭代对象强转为列表
num = list((1,2,3,4,5))
print(num)
# [1, 2, 3, 4, 5]
// 删除列表
student = ['number','id','age']
del student[0]
print(student)
# ['id', 'age']
// 添加元素
student = ['number','id','age']
student.append('class')
print(student)
# ['number', 'id', 'age', 'class']
// 列表中添加列表
student = ['number','id','age']
lit = [18,20,20]
student.extend(lit)
print(student)
# ['number', 'id', 'age', 18, 20, 20]
// 在指定位置添加元素
li1 = [1,2,3,4]
li2 = '2.0'
li1.insert(2,li2)  // 在元素2 后面添加字符串 2.0
print(li1)
# [1, 2, '2.0', 3, 4]
// 删除指定的元素
li1 = [1,2,3,4]
li1.remove(1)
print(li1)
# [2, 3, 4]
//返回指定元素在列表出现的次数
li1 = [1,2,3,4,1,1,1]
ret = li1.count(1)
print(ret)
# 4  1出现4次
// 将列表中的元素逆序
li1 = [1,2,3,4]
li1.reverse()
print(li1)
# [4, 3, 2, 1]
// 对元素进行排序
// key指定排序依据,reverse决定升序(False)还是降序(True)
li1 = [2,5,7,3,1,9]
# 升序
li1.sort(key=str,reverse=False)
print(li1) # [1, 2, 3, 5, 7, 9]
# 降序
li1.sort(key=str,reverse=True)
print(li1) # [9, 7, 5, 3, 2, 1]

元组

tu = (1,2,3)print(tu)# (1, 2, 3)

字典

// 基本语法
dic = {'v1':'k1','v2':'k2'}
print(dic)
# {'v1': 'k1', 'v2': 'k2'}
// 通过dict创建字典
dic = dict(name='阿杰',age=18)
print(dic)
# {'name': '阿杰', 'age': 18}
// 修改字典中的元素
dic = dict(name='阿杰',age=18)
dic['age']=20
print(dic)
# {'name': '阿杰', 'age': 20}
// 添加新元素
dic = dict(name='阿杰',age=18)
dic['sex'] = 'man'
print(dic)
# {'name': '阿杰', 'age': 18, 'sex': 'man'}
// 返回字典中所有的元素
dic = dict(name='阿杰',age=18)
dic.items()
print(dic)
//删除字典中的元素
dic = dict(name='阿杰',age=18)
del dic['age']
print(dic)
# {'name': '阿杰'}

总结:

列表外面是中括号

元组外面是花括号

字典外面是大括号

if 判断

age = 40
if age > 30:
    print("回家养老吧")
# 回家养老吧
num = 80
if num >=90:
    print("优秀")
elif num >= 80:
    print("良好")
else:
    print("你太优秀了,学校不是你呆的地方!")

循环结构

for循环
# 打印1+2+3+...+100 的和
sum = 0
for i in range(1,101):
    sum = sum + i
print(sum)
while循环
sum = 0
i = 1
while i < 101:
    sum = sum + i
    i += 1
print(sum)

文件处理

# ### 文件操作
"""
fp = open(文件名,模式,字符编码集)
fp 文件的io对象(文件句柄)
i => input  输入
o => output 输出
对象可以实现操作:
对象.属性
对象.方法()
"""
# 一.文件的写入操作
# (1) 打开文件
fp = open("ceshi1.txt",mode="w",encoding="utf-8") #打开冰箱门
print(fp)
# (2) 写入内容
fp.write("我就是想赛个大象进去") # 把大象塞到冰箱里头
# (3) 关闭文件
fp.close() #关上冰箱门
# 二.文件的读取操作
# (1) 打开文件
fp = open("ceshi1.txt",mode="r",encoding="utf-8")
# (2) 读取内容
res = fp.read()
print(res)
# (3) 关闭文件
fp.close()
# 三.二进制字节流
"""
文件可以存放两种内容:(1)字符串(2)二进制字节流
二进制字节流: 数据传输时的一种格式
表达方式:
  (1)b开头 比如b"123" 对字符有要求:ascii编码
  (2)如果表达中文,使用encode和decode
# 将字符串和字节流(Bytes流)类型进行转换 (参数写成转化的字符编码格式)
    #encode() 编码  将字符串转化为字节流(Bytes流)
    #decode() 解码  将Bytes流转化为字符串
"""
strvar = b"abc"
# strvar = b"中文" error
print(strvar,type(strvar))
# 把中文变成二进制的字节流
strvar = "我爱你"
res = strvar.encode() # b'\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0'
print(res)
strvar = b"\xe7\x88\xb1"
res = strvar.decode()
print(res)
# 四.存储二进制字节流 (如果存入的是字节流,不需要指定encoding)
# 写入二进制字节流
fp = open("ceshi2.txt",mode="wb")
strvar = b"\xe7\x88\xb1"
fp.write(strvar)
fp.close()
# 读取二进制字节流
fp = open("ceshi2.txt",mode="rb")
res = fp.read()
print(res) # b'\xe7\x88\xb1'
res2 = res.decode()
print(res2)
fp.close()
# 五.复制文件
"""
图片 音频 视频 都是文件,里面的内容都是二进制字节流
"""
# 1.读取图片当中所有内容(二进制字节流)
fp = open("集合.png",mode="rb")
bytes_str = fp.read()
fp.close()
print(bytes_str)
# 2.把读出来的字节流写入到另外一个文件中
fp = open("jihe2.jpg",mode="wb")
fp.write(bytes_str)
fp.close()
# ### 一 文件扩展模式
# (utf-8编码格式下 默认一个中文三个字节 一个英文或符号 占用一个字节)
#read()    功能: 读取字符的个数(里面的参数代表字符个数)
#seek()    功能: 调整指针的位置(里面的参数代表字节个数)
#tell()    功能: 当前光标左侧所有的字节数(返回字节数)
"""
seek(0)   把光标移动到文件的开头
seek(0,2) 把光标移动到文件的末尾
"""
# r+ 先读后写
"""
fp = open("ceshi2.txt",mode="r+",encoding="utf-8")
# 先读
res = fp.read()
# 后写
fp.write("123")
# 在读
fp.seek(0)
res = fp.read()
print(res,"<=====>")
fp.close()
"""
"""
# r+ 先写后读
fp = open("ceshi2.txt",mode="r+",encoding="utf-8")
# 先写
fp.seek(0,2) # 把光标移动到最后
fp.write("lmn")
# 在读
fp.seek(0) # 把光标移动到文件的开头
res = fp.read()
fp.close()
print(res)
"""
"""
# w+ 可读可写
fp = open("ceshi4.txt",mode="w+",encoding="utf-8")
# 写入
fp.write("你好我的baby")
# 读取
fp.seek(0)
res = fp.read()
print(res)
fp.close()
"""
"""
# a+ 可读可写  (在写入内容时,会强制把光标移动到最后)
# a模式和w模式,默认都能自动创建文件
fp = open("ceshi5.txt",mode="a+",encoding="utf-8")
# 写入
fp.write("今天天气不错")
# 读取
fp.seek(0)
res = fp.read()
print(res)
fp.close()
fp = open("ceshi6.txt",mode="a+",encoding="utf-8")
# 移动光标 (无论如何移动,写入内容都是以追加的形式呈现)
fp.seek(3)
fp.write("456")
fp.close()
"""
# ### 二.read , seek , tell 三个函数使用
fp = open("ceshi6.txt",mode="r+",encoding="utf-8")
# read 里面的参数,单位是字符个数
res = fp.read(3) # 读取3个字符
# seek 移动光标
fp.seek(7) # fp.seek(5) 光标卡在中所代表的三个字节中的中间位置
res = fp.read()
print(res)
# tell 从当前光标往左读取,累计所有的字节数
res = fp.tell()
print(res)
# ### 三.注意点 (中文混合的情况)
"""
# abcd\xe6\x88\x91\xe7\x88\xb1
"""
"""
fp = open("ceshi6.txt",mode="r+",encoding="utf-8")
fp.seek(5)
res = fp.read()
print(res)
fp.close()
"""
# ### 四.with 语法 (可以省略掉close操作)
"""
with open() as fp:
code .. 
"""
# 读取图片当中所有内容 (二进制字节流)
"""
with open("集合.png",mode="rb") as fp:
bytes_str = fp.read()
with open("jihe3.gif",mode="wb") as fp:
fp.write(bytes_str)
"""
# 在升级,用三行代码实现
with open("集合.png",mode="rb") as fp1,open("jihe4.gif",mode="wb") as fp2:
bytes_str = fp1.read()
fp2.write(bytes_str)

异常处理

     try ... except ...
     属于成绩1-100 超出则报错
    socre = input("请输入成绩:")
    try:
        socre = int(socre)
        if (0 <= socre <= 100 ):
            print("你的成绩为:", socre)
        else:
            print("输入有误,请重试!")
    except Exception as a:
        print("nononono")
    # 请输入成绩:90
    # 你的成绩为: 90
    # 请输入成绩:190
    # 输入有误,请重试!
    // try ... except ... else 
    socre = input("请输入成绩:")
    try:
        socre = int(socre)
    except Exception as a:
        print("nononono")
    else:
        if (0 <= socre <= 100 ):
            print("你的成绩为:", socre)
        else:
            print("输入有误,请重试!")
     // try except finally
    a = int(input('a:' ))
    b = int(input('b:' ))
    try:
        div = a/b
        print(div)
    except Exception as e:
        print("======")
    finally:
        print("over")

    socket 编程

      server:
      import socket
      # 明确配置变量
      ip_port = ('127.0.0.1', 8080)
      back_log = 5
      buffer_size = 1024
      # 创建一个TCP套接字
      ser = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  # 套接字类型AF_INET, socket.SOCK_STREAM   tcp协议,基于流式的协议
      ser.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)  # 对socket的配置重用ip和端口号
      # 绑定端口号
      ser.bind(ip_port)  # 写哪个ip就要运行在哪台机器上
      # 设置半连接池
      ser.listen(back_log)  # 最多可以连接多少个客户端
      while 1:
          # 阻塞等待,创建连接
          con, address = ser.accept()  # 在这个位置进行等待,监听端口号
          while 1:
              try:
                  # 接受套接字的大小,怎么发就怎么收
                  msg = con.recv(buffer_size)
                  if msg.decode('utf-8') == '1':
                      # 断开连接
                      con.close()
                  print('服务器收到消息', msg.decode('utf-8'))
              except Exception as e:
                  break
      # 关闭服务器
      ser.close()
      clinet:
      import socket
      p = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
      p.connect(('127.0.0.1', 8080))
      while 1:
          msg = input('please input: ')
          # 防止输入空消息
          if not msg:
              continue
          p.send(msg.encode('utf-8'))  # 收发消息一定要二进制,记得编码
          if msg == '1':
              break
      p.close()

      相关文章
      |
      18天前
      |
      数据采集 存储 XML
      Python爬虫定义入门知识
      Python爬虫是用于自动化抓取互联网数据的程序。其基本概念包括爬虫、请求、响应和解析。常用库有Requests、BeautifulSoup、Scrapy和Selenium。工作流程包括发送请求、接收响应、解析数据和存储数据。注意事项包括遵守Robots协议、避免过度请求、处理异常和确保数据合法性。Python爬虫强大而灵活,但使用时需遵守法律法规。
      |
      19天前
      |
      Python
      深入理解Python装饰器:从入门到实践####
      本文旨在通过简明扼要的方式,为读者揭开Python装饰器的神秘面纱,从基本概念、工作原理到实际应用场景进行全面解析。不同于常规的摘要仅概述内容概要,本文将直接以一段精炼代码示例开篇,展示装饰器如何优雅地增强函数功能,激发读者探索兴趣,随后深入探讨其背后的机制与高级用法。 ####
      47 11
      |
      16天前
      |
      机器学习/深度学习 人工智能 TensorFlow
      人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
      【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
      |
      16天前
      |
      机器学习/深度学习 数据挖掘 Python
      Python编程入门——从零开始构建你的第一个程序
      【10月更文挑战第39天】本文将带你走进Python的世界,通过简单易懂的语言和实际的代码示例,让你快速掌握Python的基础语法。无论你是编程新手还是想学习新语言的老手,这篇文章都能为你提供有价值的信息。我们将从变量、数据类型、控制结构等基本概念入手,逐步过渡到函数、模块等高级特性,最后通过一个综合示例来巩固所学知识。让我们一起开启Python编程之旅吧!
      |
      16天前
      |
      存储 Python
      Python编程入门:打造你的第一个程序
      【10月更文挑战第39天】在数字时代的浪潮中,掌握编程技能如同掌握了一门新时代的语言。本文将引导你步入Python编程的奇妙世界,从零基础出发,一步步构建你的第一个程序。我们将探索编程的基本概念,通过简单示例理解变量、数据类型和控制结构,最终实现一个简单的猜数字游戏。这不仅是一段代码的旅程,更是逻辑思维和问题解决能力的锻炼之旅。准备好了吗?让我们开始吧!
      |
      22天前
      |
      Java 测试技术 持续交付
      【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
      本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
      64 4
      【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
      |
      6天前
      |
      设计模式 缓存 开发者
      Python中的装饰器:从入门到实践####
      本文深入探讨了Python中强大的元编程工具——装饰器,它能够以简洁优雅的方式扩展函数或方法的功能。通过具体实例和逐步解析,文章不仅介绍了装饰器的基本原理、常见用法及高级应用,还揭示了其背后的设计理念与实现机制,旨在帮助读者从理论到实战全面掌握这一技术,提升代码的可读性、可维护性和复用性。 ####
      |
      15天前
      |
      设计模式 缓存 开发框架
      Python中的装饰器:从入门到实践####
      本文深入探讨了Python中装饰器的工作原理与应用,通过具体案例展示了如何利用装饰器增强函数功能、提高代码复用性和可读性。读者将学习到装饰器的基本概念、实现方法及其在实际项目开发中的实用技巧。 ####
      26 3
      |
      19天前
      |
      机器学习/深度学习 数据采集 数据可视化
      Python在数据科学中的应用:从入门到实践
      本文旨在为读者提供一个Python在数据科学领域应用的全面概览。我们将从Python的基础语法开始,逐步深入到数据处理、分析和可视化的高级技术。文章不仅涵盖了Python中常用的数据科学库,如NumPy、Pandas和Matplotlib,还探讨了机器学习库Scikit-learn的使用。通过实际案例分析,本文将展示如何利用Python进行数据清洗、特征工程、模型训练和结果评估。此外,我们还将探讨Python在大数据处理中的应用,以及如何通过集成学习和深度学习技术来提升数据分析的准确性和效率。
      |
      18天前
      |
      机器学习/深度学习 数据挖掘 开发者
      Python编程入门:理解基础语法与编写第一个程序
      【10月更文挑战第37天】本文旨在为初学者提供Python编程的初步了解,通过简明的语言和直观的例子,引导读者掌握Python的基础语法,并完成一个简单的程序。我们将从变量、数据类型到控制结构,逐步展开讲解,确保即使是编程新手也能轻松跟上。文章末尾附有完整代码示例,供读者参考和实践。