2020-12-30

014

链式赋值

用于同一个对象赋值给多个变量

系列解包赋值

系列数据赋值给对应相同个数的变量(个数必须保持一致)
使用系列解包赋值实现变量交换

>>>a,b = 1,2
>a,b =b,a

常量

常量全部大写
python不支持常量,程序逻辑上不能改,实际上是可以改的

015

最基本内置数据类型

  • 整型:整数
  • 浮点型:小数
  • 布尔型:true false
  • 字符串型:“abc”

数字和基本运算符

运算符说明
+加法
-减法
*乘法
/浮点数除法
//整数除法
%模(取余)
**

divmod()同时获得商和余数

016

整数

二进制 0b/0B
八进制 0o/0O
十六进制 0x/0X

利用int()实现类型的转换

  • 浮点数直接舍去小数部分
  • 布尔值True转为1,False转为0
  • 字符串符合整数格式(浮点数格式不行)则直接转成对应整数,否则报错

自动转型

整数和浮点型数值混合运算时,表达式结果自动转型成浮点型

整数可以有多大

python2中 int32位、long64位
python3中int可以存储任意大小的整数,long被取消
python3适合进行科学运算
googol10的100次方

017

浮点数

float 用 a * b^10的形式的科学计数法表示

类型转换和四舍五入

  • 例int(),可以用float()将起转换位浮点数
    == 转化时是生成新的对象,而并非是在原有对象上进行更改==
  • 整数和浮点数混合运算时,结果会自动转换为浮点数
  • 四舍五入round(value)

增强型赋值运算符

运算符+、-、*、等和赋值符=结合可以构成“增强型赋值运算符”

+=中间不能加空格

018

时间的表示

时间用数字表示,从1970年1月1日00:00:00开始,以毫秒(1/1000秒)进行计算,该时间为== unix时间点==
time.time()

019

定义多点坐标-绘出折线-并计算起始点和终点距离

import turtle
#导入数学模块
import math
#定义多个点的坐标
x1,y1 = 50,50
x2,y2 = 50,-50
x3,y3 = -50,-50
x4,y4 = -50,50
#绘制折线
turtle.penup()
turtle.goto(x1,y1)
turtle.pendown()
turtle.goto(x2,y2)
turtle.goto(x3,y3)
turtle.goto(x4,y4)
#计算起始点和终点的距离,运用到勾股定理进行计算
distance = math.sqrt((x1-x4)**2 + (y1-y4)**2)
turtle.write(distance)
turtle.done() #用来停止画笔绘制,但绘图窗体不关闭

020

布尔值

python2中无布尔值
python3中将True和False定义成了关键字,本质还是1和0,可以和数字相加

比较运算符

逻辑运算符

与and、或or、非not

同一运算符

is/is not 比较的是对象的地址

==  比较的是对象的值(value),默认调用对象的_eq_()方法 

整数缓存

python缓存范围[-5,任意正整数]
小整数放入缓存可重复使用。

is运算符比 == 效率高,在变量和None进行比较时,应该使用is

022

字符串

字符串基本特点

本质:字符序列
不可变
python不支持单字符类型,单字符也是作为一个字符串使用

字符串编码

python3使用Unicode字符集(16位),ASC II(8位)是Unicode编码的子集
内置函数ord()把字符转换位对应的Unicode码
内置函数chr()把十进制数字转化为对应的字符

引号创建字符串

单双引号均可

连续三个单引号或三个双引号,可以帮助我们创建多行字符串。

空字符串和len()函数

python允许空字符串的存在,不包含任何字符且长度为0
例如:

>>> c=''
>>> len(c)
0

023

转义字符

字符串拼接

使用将多个字符串拼接起来

可以使用 + 将多个字符串拼接起来

  • 如果加号两边都是 字符串,则拼接
  • 如果加号两边都输数字,则进行加法运算
  • 如果加号两边类型不同,则抛出异常

可以将多个字符串直接放在一起实现拼接。

字符串复制

运用*

>>> a = 'stro'*4
>>> a
'strostrostrostro'

不换行打印

每次调用print()时,都会自动打印一个换行符。
当不想换行时,即不想自动打印一个换行符时,通过加入参数end = "任意字符串"实现末尾添加任何内容。

从控制台读取字符串

使用input()从控制台读取键盘输入的内容

>>> myname = input('请输入名字:') 
请输入名字:嘻嘻哈哈
>>> myname
'嘻嘻哈哈'

024

str()实现数字转型字符串

str()将其他数据类型转成字符串

当我们调用print()函数时,解释器自动调用了str()将非字符串的对象转成了字符串  

使用[]提取字符

字符串本质时字符序列

在[]里面加入制定偏移量,可以提取该位置的单个字符
  • 正向搜索
    最左侧第一个字符,偏移量是0,第二个字符偏移量为1,以此类推。直到len(str)-1为止
  • 反向搜索
    最右侧第一个字符偏移量为-1,倒数第二个偏移量为-2,以此类推,直到-len(str)为止。

replace()替换

字符串不能改变,但是可以通过replace()修改字符串中的某一个字符后 创建出一个新的字符串

a = a.replace('原字符','要更改的字符')

>>> a = 'asdfghj'
>>> a
'asdfghj'
>>> a = a.replace('f','哦')
>>> a
'asd哦ghj'

025

字符串切片slice操作

[起始偏移量start:终止偏移量end:步长step]

== 包头不包尾==

step默认为1

026

split()分割和join()合并

spilt()基于制定分隔符将字符床分隔成多个字符串== (存储到列表里)==。
如果不指定分隔符,则默认使用空白符(换行符、空白、制表符)

>>> a = "i want to go to sleep"
>>> a.split()
['i', 'want', 'to', 'go', 'to', 'sleep']
>>> a.split('want')
['i ', ' to go to sleep']

join()与split()正好相反,将列表中的字符串合并
'链接符'.join(变量)

>>> a
['i want ', ' go ', ' sleep']
>>> '*'.join(a)
'i want * go * sleep'

拼接字符串要点:
使用字符串拼接符‘+’,会生成新的字符串对象
使用join时,join会在拼接字符串之前会计算所有字符串的长度,然后逐一拷贝,仅新建一次对象。

import time
time01 = time.time()
a = ""
for i in range(1000000):
    a += "sxt"
time02 = time.time()

print("运算时间:" + str(time02-time01))

time03 = time.time()
li = []
for i in range(1000000):
    li.append("sxt")
a = ''.join(li)
time04 = time.time()
print("运算时间:" + str(time04-time03))

027

字符串的驻留机制

仅保留一份相同且不可变字符串的方法,不同的值被存放在字符串滞留池中。

对于符合标识符规则的字符串会启用字符串驻留机制仅包含下划线、字母和数字

>>> a = "abd_33"
>>> b = "abd_33"
>>> a is b
True
>>> a = "abd#"
>>> b = "abd#"
>>> a is b
False

成员操作符

in/not in判断某个字符(子字符串)是否存在于字符串中

>>> 'a' in a
True
>>> 'sf' in a
False

028

常用查找方法

len() 字符串长度
a.startswith(‘’) 以指定字符串开头
a.endswith(‘’) 以指定字符串结尾
a.find(‘’) 第一次出现指定字符串的位置
a.rfind(‘’) 最后一次出现指定字符串的位置
a.count(’’) 指定字符串出现了几次
a.isalnum() 所有字符全是字母或数字

去除首尾信息

strip() 去除首位空格
strip("") 去除首位指定信息
lstrip("") 去除左边指定信息
rstrip("") 去除右边指定信息
"字符串".strip()

大小写转换

a.capitalize() 首字母大写
a.title() 每个单词首字母大写
a.upper() 全部大写
a.lower() 全部小写
a.swapcase() 大转小,小转大
全部为产生新的字符串

格式排版

center() 居中
ljust() 左对齐
rjust() 右对齐

>>> a = 'asdf'
>>> a.center(20)
'        asdf        '
>>> a.ljust(15,'&')
'asdf&&&&&&&&&&&'

其他方法

isalnum() 是否是字母或数字
isalpha() 是否是字母
isdigit() 是否时数字
isspace() 是否为空白符
isupper() 是否为大写
islower() 是否为小写

029

字符串的格式化

格式化字符串函数str.format()
基本语法用{}和:

>>> a ='名字是:{0},年龄是{1}'
>>> a.format('haha',18)
'名字是:haha,年龄是18'

填充与对齐

填充常与对齐一起使用^ 、<、 > 分别是居中,左对齐、右对齐,后面带宽度
:后面带填充的字符,只能是一个字符,不指定的话默认用空格填充

>>> '{:%<10}'.format('asfsdjh')
'asfsdjh%%%'

数字格式化

浮点数通过f,整数通过d进行需要的格式化

{:.2f} 保留两位小数
{:+.2f} 带符号保留两位小数
{:.0f} 不带小数
{:0>2d} 数字补零填充左边,宽度为2
{:x<4d} 数字补x填充右边,宽度为4
{:,} 以逗号分隔的数字形式
{:.2%} 百分比格式
{:.2e} 指数记法
{:10d} 右对齐(默认、宽度为10)
{:<10d} 左对齐,宽度为10
{:^10d} 居中,宽度为10

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用Python中的pandas库将时间序列数据存储到DataFrame中,然后使用pandas的to_excel()方法将其输出到Excel文件中。 首先,需要使用pandas中的date_range()函数生成时间索引,确定时间范围从2018-01-01 08:00:00到2020-12-30 00:00:00,每小时取一个值。 其次,使用pandas中的DataFrame()函数创建一个新的DataFrame并将时间索引设置为刚才生成的时间索引。 最后,使用DataFrame的to_excel()方法将其输出到Excel文件中。 代码示例如下: ``` python import pandas as pd # 生成时间索引 time_index = pd.date_range('2018-01-01 08:00:00', '2020-12-30 00:00:00', freq='H') # 创建新的DataFrame并将时间索引设置为刚才生成的时间索引 df = pd.DataFrame(index=time_index) # 输出到Excel文件 df.to_excel('output.xlsx') ``` ### 回答2: 首先,我们需要计算从2018年1月1日08:00:00到2020年12月30日00:00:00的总小时数。我们可以使用日期时间函数来完成这个计算。 首先,计算起始日期和结束日期之间的总天数。起始日期是2018年1月1日08:00:00,结束日期是2020年12月30日00:00:00。计算这两个日期之间的天数,可以使用以下公式: =end_date - start_date + 1 其中,"+1"是因为起始日期所占的一天也要计算在内。 接下来,计算总小时数。因为每天有24小时,所以总小时数等于总天数乘以24。公式如下: total_hours = total_days * 24 现在我们知道了从起始日期到结束日期的总小时数,我们可以使用循环来逐小时生成日期时间,并将其写入Excel文件。我们可以使用Python中的openpyxl库来实现这个功能。 首先,导入必要的库: import openpyxl from datetime import datetime, timedelta 然后,创建一个新的Excel工作簿: workbook = openpyxl.Workbook() sheet = workbook.active 接下来,设置起始日期和结束日期: start_date = datetime(2018, 1, 1, 8, 0, 0) end_date = datetime(2020, 12, 30, 0, 0, 0) 然后,用循环生成连续的日期时间,并将其写入Excel文件: current_date = start_date for i in range(total_hours): sheet.cell(row=i+1, column=1).value = current_date current_date += timedelta(hours=1) 最后,保存Excel文件: workbook.save('output.xlsx') 以上就是将2018年1月1日08:00:00到2020年12月30日00:00:00的连续时间每小时取一个值,并输出为Excel文件的步骤。 ### 回答3: 要将2018-01-01 08:00:00到2020-12-30 00:00:00这个时间范围内每小时连续取一个值,并输出到Excel文件中,可以使用Python编程语言中的pandas和openpyxl库来实现。 首先,我们需要导入所需的库: ```python import pandas as pd from openpyxl import Workbook ``` 接下来,我们可以创建一个日期范围,从2018-01-01 08:00:00到2020-12-30 00:00:00,每小时的频率,并将其存储在一个DataFrame中: ```python start_date = pd.Timestamp('2018-01-01 08:00:00') end_date = pd.Timestamp('2020-12-30 00:00:00') date_range = pd.date_range(start=start_date, end=end_date, freq='1H') df = pd.DataFrame(date_range, columns=['Timestamp']) ``` 然后,我们可以向DataFrame中添加其他需要的列,例如年、月、日和小时: ```python df['Year'] = df['Timestamp'].dt.year df['Month'] = df['Timestamp'].dt.month df['Day'] = df['Timestamp'].dt.day df['Hour'] = df['Timestamp'].dt.hour ``` 最后,我们可以使用openpyxl库将DataFrame保存到Excel文件中: ```python output_file = 'output.xlsx' with pd.ExcelWriter(output_file, engine='openpyxl') as writer: df.to_excel(writer, index=False) ``` 完整的代码如下: ```python import pandas as pd from openpyxl import Workbook start_date = pd.Timestamp('2018-01-01 08:00:00') end_date = pd.Timestamp('2020-12-30 00:00:00') date_range = pd.date_range(start=start_date, end=end_date, freq='1H') df = pd.DataFrame(date_range, columns=['Timestamp']) df['Year'] = df['Timestamp'].dt.year df['Month'] = df['Timestamp'].dt.month df['Day'] = df['Timestamp'].dt.day df['Hour'] = df['Timestamp'].dt.hour output_file = 'output.xlsx' with pd.ExcelWriter(output_file, engine='openpyxl') as writer: df.to_excel(writer, index=False) ``` 运行这段代码将生成一个名为output.xlsx的Excel文件,其中包含从2018-01-01 08:00:00到2020-12-30 00:00:00每小时连续取一个值的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值