Python 基础

List 列表

list1 = ['red', 'green', 'blue']

list1[0] # red
list1[-1] # blue 反向索引
list1[0:2] # red, green [0, 2)
  • 更新列表项
list1[2] = 2001 # 修改
list1.append('newItem') # append 添加
del list1[2] # del 删除
  • 操作
len([1, 2, 3]) # 3 长度

[1, 2, 3] + [4, 5, 6] # 拼接
list1 += [4, 5, 6] # 拼接

for x in [1, 2, 3]: print(x, end=" ") # 遍历

max([1, 2, 3]) # 最大值
min([1, 2, 3]) # 最小值

list(seq) # 将元组转换为列表
  • 方法
list1.append(obj) # push
list1.count(obj) # 统计某个元素在列表中出现的次数
list1.index(obj) # indexof
list1.insert(index, obj) # 将对象插入列表
list1.pop(obj) # 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
list1.remove(obj) # 移除列表中某个值的第一个匹配项
list1.reverse() # 反向
list1.sort( key=None, reverse=False) # 排序
list1.clear() # 清空
list1.copy() # 复制
  • filter
def testFilter(x):
  return x%2  #x是否能被2整除

print(list(filter(testFilter,range(1,10)))) # [1, 3, 5, 7, 9]
  • map
def testMap(x):
  return x+1

print(list(map(testMap,range(1,5)))) # [2, 3, 4, 5]

String 字符串

str1 = 'Hello World'

str1[0] # H
str1[-1] # d
str1[1:4] # ell [1, 4)
  • 更新字符串
str1[:6] + 'Runoob!'
  • 转义字符
print("line1 \
  line2") # \续行符 line1 line2
print("Hello \b World!") # \b 退格 Hello World!
print("\n") # \n 换行 
print (r'\n') # 原始字符串

para_str = """python三引号允许一个字符串跨多行,
字符串中可以包含换行符、制表符以及其他特殊字符。
"""
  • 字符串格式化
符号 desc
%c 格式化字符及其ASCII码
%s 格式化字符串
%d 格式化整数
%u 格式化无符号整型
print ("我叫 %s 今年 %d 岁!" % ('Yoga', 10)) # 我叫 Yoga 今年 10 岁!

print('Hello %s' % name)
print(f'Hello {name}') # f-string 字面量格式化字符串 python3.6
  • 查找
'H' in str1 # True
'H' not in str1 # False

str1.count(sub, beg= 0,end=len(string)) # sub在 str1 出现的次数
str1.find(sub, beg=0, end=len(string)) # 返回索引值或-1
str1.rfind(sub, beg=0, end=len(string)) # 从右开始找
str1.index(sub, beg=0, end=len(string)) # sub不存在会报异常
str1.rindex(sub, beg=0, end=len(string)) # 从右开始找
  • 替换
str2 = str1.replace(old, new, max) # old 换成 new,替换不超过 max 次, 返回一个新的字符串,

trantab = str.maketrans("aeiou", "12345")   # 字符串映射表
str1 = "this is string example....wow!!!"
str1.translate(trantab) # 翻译
  • 操作
len(str1) # 长度
max(str1) # W
min(str1) # e
  • 方法
str1.capitalize() # 首字母大写
str1.islower() # 小写
str1.isupper() # 大写
str1.lower() # 转小写
str1.upper() # 转大写
str1.wapcase() # 大小写互转
str1.title() # 所有单词首字母大写

str1.isalnum() # 字母或数字
str1.isalpha() # 字母或中文
str1.isdigit() # 数字 123
str1.isnumeric() # 数字字符 "123"
str1.isdecimal() # 十进制字符
str1.isspace() # 空白
str1.endwith(sub)
str1.startwith(sub)

str1.split(str="", num=string.count(str))
str1.join(seq) # 拼接 H-E-L-L-O

str1.strip(sub) # 截掉 空格 或 sub
str1.rstrip(sub) # 截掉 右空格 或 sub
str1.rstrip(sub) # 截掉 右空格 或 sub

str1.encode(encoding='UTF-8',errors='strict') # 编码
bytes.decode(encoding="utf-8", errors="strict") # 解码
str1.expandtabs(tabsize=8) # tab 转空格 
  • 正则
import re

if (re.match('Actual_sales_2[01][0-9][0-9][0-9][0-9].xlsx', 'Actual_sales_202303.xlsx')):
  print('File exist')

Date 日期

import datetime

utc=datetime.datetime.utcnow() # UTC = datetime.datetime.today()
utc8=datetime.datetime.today()+datetime.timedelta(hours=8) # UTC8 北京时间

today=utc8.strftime("%Y-%m-%d") # 2023-02-16
weekday=utc8.strftime("%w") # '4' (周日0 ~ 周六6)
yesterday=utc8 - datetime.timedelta(days=1) # 昨天

lastMonday=(utc8 - datetime.timedelta(days = utc8.weekday() + 7)).strftime("%Y-%m-%d") # 上周一
begindate=datetime.datetime.strptime("2022-01-01","%Y-%m-%d") # 指定一天
begindate=datetime.datetime.strptime("202201","%Y%m") # 指定一天 2022-01-01 00:00:00

DataMonth=(utc8.replace(day=1)-datetime.timedelta(days=1)).strftime('%Y%m') # 上个月 202305
DataMonthL6=(utc8.replace(day=1)-datetime.timedelta(days=156)).strftime('%Y%m') # 6个月前 202212

DataMonth=utc8.strftime('%Y%m')
DataMonthL6=(datetime.datetime.strptime(DataMonth,"%Y%m")-dateutil.relativedelta.relativedelta(months=6)).strftime('%Y%m') # 6个月前 202212

循环

  • For

for 循环可以遍历任何可迭代对象,如一个列表或者一个字符串

for [variable] in [sequence]: (statements) else: (statements)

遍历数组

for x in range(6):
  print(x) # 0 1 2 3 4 5
  if x == 3:
    break
else:
  print("Finished!")

遍历字典

dic = {'a': 1, 'b': 2}
for key, value in dic.items:
  print(key, value)
  • While

while 判断条件(condition): 执行语句(statements)

a = 1
while a < 10:
  print(a)
  a += 2
else:
  print ("a >= 10")

异常处理

  • 异常捕获
try:
  ...
except Exception as FailReaon:
  print(str(FailReaon))
  ...
else:
  ...
  • 抛出异常
raise Exception('Error message');
Article
Tagcloud
DVA Java Express Architecture Azure CI/CD database ML AWS ETL nest sql AntV Next Deep Learning Flutter TypeScript Angular DevTools Microsoft egg Tableau SAP Token Regexp Unit test Nginx nodeJS sails wechat Jmeter HTML2Canvas Swift Jenkins JS event GTM Algorithm Echarts React-Admin Rest React hook Flux Redux ES6 Route Component Ref AJAX Form JSX Virtual Dom Javascript CSS design pattern