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()

      相关文章
      |
      2月前
      |
      存储 数据挖掘 开发者
      Python编程入门:从零到英雄
      在这篇文章中,我们将一起踏上Python编程的奇幻之旅。无论你是编程新手,还是希望拓展技能的开发者,本教程都将为你提供一条清晰的道路,引导你从基础语法走向实际应用。通过精心设计的代码示例和练习,你将学会如何用Python解决实际问题,并准备好迎接更复杂的编程挑战。让我们一起探索这个强大的语言,开启你的编程生涯吧!
      |
      1月前
      |
      存储 数据采集 人工智能
      Python编程入门:从零基础到实战应用
      本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
      |
      1月前
      |
      机器学习/深度学习 数据可视化 数据挖掘
      使用Python进行数据分析的入门指南
      本文将引导读者了解如何使用Python进行数据分析,从安装必要的库到执行基础的数据操作和可视化。通过本文的学习,你将能够开始自己的数据分析之旅,并掌握如何利用Python来揭示数据背后的故事。
      |
      11天前
      |
      存储 数据挖掘 数据处理
      Python Pandas入门:行与列快速上手与优化技巧
      Pandas是Python中强大的数据分析库,广泛应用于数据科学和数据分析领域。本文为初学者介绍Pandas的基本操作,包括安装、创建DataFrame、行与列的操作及优化技巧。通过实例讲解如何选择、添加、删除行与列,并提供链式操作、向量化处理、索引优化等高效使用Pandas的建议,帮助用户在实际工作中更便捷地处理数据。
      23 2
      |
      17天前
      |
      人工智能 编译器 Python
      python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
      python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
      python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
      |
      1月前
      |
      IDE 程序员 开发工具
      Python编程入门:打造你的第一个程序
      迈出编程的第一步,就像在未知的海洋中航行。本文是你启航的指南针,带你了解Python这门语言的魅力所在,并手把手教你构建第一个属于自己的程序。从安装环境到编写代码,我们将一步步走过这段旅程。准备好了吗?让我们开始吧!
      |
      1月前
      |
      测试技术 开发者 Python
      探索Python中的装饰器:从入门到实践
      装饰器,在Python中是一块强大的语法糖,它允许我们在不修改原函数代码的情况下增加额外的功能。本文将通过简单易懂的语言和实例,带你一步步了解装饰器的基本概念、使用方法以及如何自定义装饰器。我们还将探讨装饰器在实战中的应用,让你能够在实际编程中灵活运用这一技术。
      44 7
      |
      1月前
      |
      开发者 Python
      Python中的装饰器:从入门到实践
      本文将深入探讨Python的装饰器,这一强大工具允许开发者在不修改现有函数代码的情况下增加额外的功能。我们将通过实例学习如何创建和应用装饰器,并探索它们背后的原理和高级用法。
      49 5
      |
      1月前
      |
      机器学习/深度学习 人工智能 算法
      深度学习入门:用Python构建你的第一个神经网络
      在人工智能的海洋中,深度学习是那艘能够带你远航的船。本文将作为你的航标,引导你搭建第一个神经网络模型,让你领略深度学习的魅力。通过简单直观的语言和实例,我们将一起探索隐藏在数据背后的模式,体验从零开始创造智能系统的快感。准备好了吗?让我们启航吧!
      90 3
      |
      2月前
      |
      机器学习/深度学习 数据采集 数据挖掘
      Python编程语言的魅力:从入门到进阶的全方位解析
      Python编程语言的魅力:从入门到进阶的全方位解析