首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【学习笔记】Python基础

【学习笔记】Python基础

作者头像
Livinfly
发布于 2022-10-26 08:10:17
发布于 2022-10-26 08:10:17
53800
代码可运行
举报
文章被收录于专栏:LivinflyLivinfly
运行总次数:0
代码可运行

关于


该学习笔记为本人学习Bilibili上尚硅谷的教程的记录.

注释

单行注释

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 注释内容

快捷键 : ctrl + /

多行注释

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  '''
      注释内容
  '''

变量


常用变量

int

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a = 12
  • float
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
b = 1.2
  • boolean
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gender_1 = True
gender_2 = False
  • string
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#单引号、双引号(单个中不能混用,就近匹配)
s0 = 'Hello python'
s1 = '"zzz"'  # Yes
s2 = ''sss'' # No
s3 = ""zzz"" # No
  • list 列表
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
name_list = ['Amy', 'Bob']
  • tuple 元组
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
age_tuple = (18, 19, 20, 21)
  • dict 字典
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# xxx = {key:value, ...}
person = {'name':'小明', 'age' : 18}

查看类型及命名规则、规范


查看变量

数据有类型,变量没有类型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
xxx = '???'
print(type(xxx))
命名规则、规范

字母+下划线+数字,且不能数字开头 严格区分大小写 不能使用关键字

  • 驼峰命名
    • 小驼峰
      • userLoginFlag
    • 大驼峰
      • FirstName
  • 下划线
    • user_login_flag

类型转化

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
float --> int 只取整数部分
True ---> 1
False --> 0
字符串有非法字符转不了,如:
    a = '1.64'
    b = int(a) # NO
    c = float(a) # Yes
    
    z = str(y)

结果转为Bool是False:

  1. 0
  2. 0.0
  3. ''
  4. []
  5. ()
  6. {}
格式
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
x = int(a)

运算符


算数运算符

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
+, -, *, /
// 整除
%  取余
**** > */%// > +-

字符串的+为拼接 字符串的乘法, 将字符串重复几次 +号两端格式一样

赋值运算符

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
b = c = 20
d, e, f = 3, 4, 5 # 逗号分隔

复合赋值运算符

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a += 3
# *=, -=, /=, //=, %=, **=

比较运算符

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 返回bool
# ==, != (<> -- python2), <, <=, >, >=

逻辑运算符

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
and, or, not

# 性能优化

# and(短路与)
36 > 10 and print('111')#输出111
36 < 10 and print('111')#不输出
# 前面是false,后面就不执行了

# or(短路或)
# 同理,or前面是true,后面就不执行了

输入输出


输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#普通输出
print('xxx')
print('xxx' + str(xx))

#格式化输出
# %s, %d
name = '小明', age = 18
print('aaaa%s, bbbb%d' % (name,age))

输入

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 读入的是字符串
account = input('请输入账号‘)

流程控制


if - else - elif

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a = 2
if a > 18:
    print('Yes')
elif a > 5:
    print('No')
else:
    print('error')

for

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 字符串
s = 'China'
for i in s:
    print(i)
# range(5)
for i in range(5):
    print(i)
# 0, 1, 2, 3, 4

# rawnge(1, 6)
# 1,...,5

# range(1, 10, 3)
# 1, 4, 7

# list

# 遍历元素
for i in a_list:
    print(i)
# 遍历下标
for i in range(len(a_list)):
    print(a_list[i])

数据类型常用方法


字符串

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#获取长度 
a = len(s)

#返回第一次出现的位置
a = s.find('a')

#判断开头结尾,返回Bool
a = s.startswith('c')
a = s.endswith('n')

#出现次数
a = s.count('a', 2, 5) # [2, 5) 区间参数可加可不加

#替换
s.replace('c', 'd', 3) # old, new, max times

#切割
s = '1#2#3$4'
a = s.split('#') # a -- list

#大写
s2 = s1.upper()
s3 = s1.lower()

#去除 - 只能去除开头和结尾,中间不去
s = s.strip() #去空格
s = s.strip('0') 

s = s.strip('12') #'21'也去..

#拼接

a = 'a'
s = a.join('hello')
# s = 'haealalao'

列表

crud

字符串
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# append - 在最后添加
food_list.append('xxx')

# insert - 想要插入的位置
# ['a', 'c', 'd']
char_list.insert(1, 'b')
# ['a', 'b', 'c', 'd']

# extend
# list1->list1 + list2
list1.extend(list2)
列表
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# [index] - 修改
city_list[2] = 'xxx'

# in - 判断是否在list中
# not in
if 'apple' in food_list:
    print('yes')

# 删除

# del [index]
del aList[2]
# pop 删除最后一个元素
aList.pop()
# 根据元素的值删除
aList.remove(3)
元组

元组的元素不能修改

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
aTuple = (5) # int
aTuple = (5,) #tuple
aTuple = (1, 2, 3, 4)
#访问, index
print(aTuple[2])
切片

字符串、列表、元组都支持

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
s = 'hello world'
print(s[0])
# hell [a,b)
print(s[0:4])
print(s[1:]) # 从1开始
print(s[:4]) # 到4结束
print(s[0:6:2]) # step
字典
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#定义
man = {'name':'ming', 'age':28}
#访问
print(man['name'])
#引用不存在的key,报错keyerror
print(man.get('name'))
# 查询不存在的sex返回None
print(man.get('sex'))

# 修改

man['name'] = 'hong'
# 不能用get

# 添加

# new key value
man['sex'] = 'male'

# 删除

# del - 1.删指定某一元素 2. 删字典

del man['age']
del man

# clear - 清空字典,但保留字典对象

man.clear()

# 遍历

# 遍历key
# xxx.keys(),所有key的值
for x in man.keys():
    print(x)

# 遍历value
for x in man.values():
    print(x)

# 遍历key和value
for key, value in man.items():
    print(key,value)

# 遍历项/元素
for x in man.items():
    print(x)

函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 定义函数
def f1():
    print('hello')
# 调用函数
f1()
# 含参函数

def sum(a, b): # a,b - 形参
    c = a+b
# 位置传参
sum(1, 2) # 1, 2 - 实参
# 关键字传参
sum(b = 200, a = 100)

# 返回值
def sum(a, b):
    return a+b
print(sum(1, 2))

局部变量和全局变量

函数内部定义的作用范围只有在函数内部 函数外部定义的作用范围都可以 在满足需求的前提下,选择作用域最小的

文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# open(path, mode)
# 不能创建文件夹
# w 可写(覆盖), r 可读, a追加,r+读写(文件指针在文件开头,w+读写(覆盖)
# rb以二进制格式打开只读,类似的wb,ab,rb+,wb+,ab+

# 打开
# a.txt, ./a.txt, ../a.txt
open('a.txt', 'w')

fp = open('a.txt', 'w')

# 写数据
fp.write('hhh')

# 读数据
fp = open('a.txt', 'r')
# 默认是一字节一字节的读,效率比较慢
content = fp.read()
# 读取一行
content = fp.readline()
# 读取多行,读完(返回列表)
content = fp.readlines()

# 关闭 - 内存不一样
fp.close()

序列化和反序列化

因为对象无法直接写入到文件中,所以要进行序列化再写入

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
对象 --> 字节序列 --- 序列化

字节对象 --> 对象 --- 反序列化
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fp = open('a.txt', 'w')
nameList = ['ming', 'hong']

# 序列化1 - dumps()
# 将python对象变为json字符串
# 在时使用scrapy框架时,会返回对象

# 引入json模块
import json

names = json.dumps(nameList) # 字符串

fp.write(names)

# 序列化2 - dump

import json

# 相当于把上面的两部合并了
json.dump(nameList, fp)

# 反序列化1 - loads()
# 将json字符串变为python对象
content = fp.read()

res = json.loads(content)

# 反序列化2 - load

import json

# 读的是文件
res = json.load(fp)

fp.close()

异常

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# try:
#      可能出现异常的代码
# except [异常的类型]:
#      提示

try:
    fp = open('a.txt', 'r')
    fp.read()
except FileNotFoundError:
    print('404 not found')
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年07月14日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
系统清理问题:系统清理不彻底,占用大量资源
是山河呀
2025/02/08
1610
系统日志清理问题:系统日志清理不当,占用大量磁盘空间
是山河呀
2025/02/08
3120
日志清理脚本
解决某些中间件或者应用日志无法自动清理的情况,比如:Nacos 的 access 日志。
叨叨软件测试
2020/06/16
1.5K0
日志清理脚本-V0.0.3(增加多目录清理、正则表达式匹配、调试模式;部分细节优化)
解决某些中间件或者应用日志无法自动清理的情况,比如:Nacos 的 access 日志清理,临时目录文件清理等。
叨叨软件测试
2020/07/31
4260
系统垃圾文件清理问题:系统垃圾文件清理不当,占用大量磁盘空间
是山河呀
2025/02/08
3110
日志备份问题:日志备份失败,导致数据丢失
是山河呀
2025/02/07
1830
Oracle-Listener log解读
在ORACLE数据库中,如果不对监听日志文件(listener.log)进行截断,那么监听日志文件(listener.log)会变得越来越大.
小小工匠
2021/08/16
2.2K0
python实现磁盘日志清理
一、描述: 以module的方式组件python代码,在磁盘文件清理上复用性更好 二、达到目标:      清空过期日志文件,清理掉超过自定大小日志文件 三、原码 #!/usr/bin/env python # -*- coding: utf-8 -*-   import commands import os import time import re import getopt import sys   # commands.getstatusoutput 返回两个元素的元组tuple(status, r
py3study
2020/01/10
1.3K0
日志定期清理和logrotate
常见应用服务,都会记录日志,方便问题查询和故障定位。linux系统本身也会有日志输出。
zero000
2019/04/29
8.1K0
日志定期清理和logrotate
生产环境trace log等日志清理脚本
log_file1日志文件保留40天,log_file2保留45天,即-mtime +xx表示xx天之前。
loong576
2019/09/10
5150
shell:清理指定目录中指定天数之前的旧文件
我们在服务器运行一些服务经常会产生很多临时文件, 而有些临时文件不定期处理很容易就打满了整个磁盘; 所以有必要去定期清理,基于这个需求我们就可以搞一个脚本结合crontab或者服务调度这些来使用;
CRPER
2023/04/30
8470
k8s下部署ansible进行node-export二安装
远程普通用户若要使用 sudo 权限,需要在 /etc/ansible/ansible.cfg 进行配置,若远程是root用户则可跳过。
BUG弄潮儿
2025/03/10
860
k8s下部署ansible进行node-export二安装
LINUX脚本使用实战,持续更新
结果测试 [root@zabbix shell]# sh checkurl.sh www.baidu.com www.baidu.com url [ 确定 ]
cuijianzhe
2022/06/14
2.1K0
LINUX脚本使用实战,持续更新
mysql清理日志脚本分享
数据库运行久了, 日志就很多, 很占空间. 就需要定期清理, 人工清理一是麻烦, 二是容易出错
大大刺猬
2022/06/02
1.2K0
mysql清理日志脚本分享
常用APP等日志分割与nginx日志分析脚本合集
[核心命令: find命令去查找日志目录下含关键字的日志文件,然后利用for循环去删除\$cleanday之前的日志文件]
明哥的运维笔记
2019/01/30
6580
shell常用脚本集合
章工运维
2023/05/28
2560
系统临时文件清理问题:系统临时文件清理不当,占用大量磁盘空间
是山河呀
2025/02/08
2320
Tomcat日志配置与清理
今天看了下tomcat日志,发现已经有8g多了...  仔细想想大概有2年多没有处理过日志了。因为博客线上也没出过啥问题,所以压根就没怎么看过日志。毕竟不是运维 ... 这方面确实没咋注意,服务器还是有很多需要搞清楚的 。
sunonzj
2022/06/21
2.1K0
Tomcat日志配置与清理
【AlmaLinux+Docker MySQL 实战】:自动化备份与恢复(备份策略·脚本编写·恢复演练)
作为 DBA,万一一场“你以为的备份”没有发生,就可能让业务在一秒内崩塌。怎样才能保证备份脚本一键跑起、有问题及时知晓、恢复流程随时可演练?这篇文章将从“备份策略”“脚本编写”到“恢复演练”三个知识节点,带你一步一步彻底搞定 MySQL 自动化备份与恢复。
IT咸鱼
2025/06/09
1280
【AlmaLinux+Docker MySQL 实战】:自动化备份与恢复(备份策略·脚本编写·恢复演练)
Linux下Nginx、MySQL和PHP等应用的日志切割脚本
在Linux中如果应用程序会产生日志,那么就需要考虑日志切割,例如按照固定的大小切割、按照日期进行切割等等。同样,在编译Nginx1.9.0、MySQL5.7.7rc和PHP7后,这三个应用服务都会产生日志,尤其是Nginx进程根据配置文件ngnix.conf记录每条访问记录到access.log中。如果所有的日志都打印到同一个文件中的话,那么时间长了的话就会影响效率。
typecodes
2024/03/29
1670
Linux下Nginx、MySQL和PHP等应用的日志切割脚本
推荐阅读
相关推荐
系统清理问题:系统清理不彻底,占用大量资源
更多 >
LV.0
这个人很懒,什么都没有留下~
目录
  • 关于
  • 注释
  • 变量
    • 常用变量
    • 查看类型及命名规则、规范
      • 查看变量
      • 命名规则、规范
    • 类型转化
      • 格式
  • 运算符
    • 算数运算符
    • 赋值运算符
    • 复合赋值运算符
    • 比较运算符
    • 逻辑运算符
  • 输入输出
    • 输出
    • 输入
  • 流程控制
    • if - else - elif
    • for
  • 数据类型常用方法
    • 字符串
    • 列表
      • 字符串
      • 列表
      • 元组
      • 切片
      • 字典
  • 函数
    • 局部变量和全局变量
  • 文件
    • 序列化和反序列化
  • 异常
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档