Day-1: Python基础 (一)

该博客介绍Python基础内容,涵盖输入与输出,如hello.py例程;数据类型,包括可直接处理的整数、浮点数等和不可直接处理的列表等;变量与常量的命名规则及运算;字符串和编码的相关函数、方法,还提及文件编码注释;以及格式化输出。

1. 输入与输出

输出:

print('hello,world')

输入:

name = input()

例程: hello.py

name = input('please enter your name: ')
print('hello', name)

2. 数据类型:

2.1 可直接处理类型

整数: 

1,100, 0xff00

Python中整数没有大小限制

浮点数:

1.23,1.23e9 (1.23*10^9), 1.2e-5 (0.000012)

Python中浮点数也没有大小限制,超出一定范围直接表示为 inf (无限大)

字符串:

'I\'m \"OK\"!'

'''  ''' 可以表示多行内容

print('''Line1,
Line2,
Line3''')

r' ' 表示 ' ' 内部字符串默认不转义

>>> print(r'\\\t\\')
\\\t\\

布尔值:

True, False

布尔运算符

and, or, not

空值:

None

2.2 不可直接处理类型

列表,字典, 自定义数据类型

3. 变量与常量

3.1 变量

变量名必须是大小写英文,数字和下划线 _ 的组合,不能用数字开头

a = 1
t_007 = 'T007'
Answer = True

3.2 常量

用全部大写的变量名表示常量,这只是一个习惯上的用法。Python根本没有任何机制保证表示常量的变量名(PI)的值不会被改变。如果非要改变表示常量的变量名(PI)的值也是可以的。

PI = 3.1415926

/ 除法计算结果是浮点数,即使两个整数恰好整除,结果也是浮点数。

>>> 9 / 3
3.0

// 地板除, 两个整数的除法仍然是整数。

>>> 10 // 3
3

% 取余数

>>> 10 % 3
1

4. 字符串和编码

print('包含中文的str')

ord()函数获取字符的整数表示(对于中文字符,为其Unicode编码值)

chr()函数把编码(对于中文字符,为其Unicode编码值)转换为对应的字符

>>> ord('A')
65
>>> ord('中')
20013
>>> chr(66)
'B'
>>> chr(25991)
'文'

知道字符的整数编码(对于中文字符,为其Unicode编码值),还可以用十六进制这么写str:

>>> '\u4e2d\u6587'
'中文'

字符串的encode()方法与bytes类型字符串的decode()方法

>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
>>> b'ABC'.decode('ascii')
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'
>>> b'\xe4\xb8\xad\xff'.decode('utf-8', errors = 'ignore')
'中'

计算 str 中包含多少个字符:

>>> len('ABC')
3
>>> len('中文')
2

len() 函数参数为bytes类型字符时,计算字节数:

>>> len(b'\xe4\xb8\xad\xe6\x96\x87')
6
>>> len('中文'.encode('utf-8'))
6

.py 文件开头两行加注释:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;

第二午注释是为了告诉Python解释器,按UTF-8编码读取源代码,否则,在源代码中写的中文输出可能会有乱码。

注意: 申明了UTF-8编码并不意味着.py 文件就是UTF-8编码的,必须并且要确保文本编辑器正在使用UTF-8 without BOM编码。

5. 格式化输出

占位符替换内容

%d

整数
%f浮点数
%s字符串
%x十六进制整数

 

 

 

 

 

 

>>> 'hello, %s' % 'world'
'hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'
>>> 'growth rate: %d %%' % 7
'growth rate: 7 %'
>>> 'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明',17.125)
'Hello, 小明, 成绩提升了 17.1%'

 

源码链接: https://pan.quark.cn/s/7b9e1590db2e 在本计划中,我们聚焦于一个基于数字逻辑的药片装瓶系统的构建,这构成了北京邮电大学(北邮)在小学期内向学生提供的次课程设计课题。该系统致力于模拟实际药品包装的操作流程,借助电子操控自动化技术达成药片的高效且精准的装瓶目标。以下是对该系统设计所涉及的关键知识领域的详尽阐述: 1. **数字逻辑**:数字逻辑是电子工程领域的核心学科,主要探究如何运用二进制数字进行信息的表征处理。在此项目中,数字逻辑用于构建实现系统的控制机制,诸如计数器、编码器、解码器、触发器等,旨在保障药片装瓶过程的精确调控。 2. **硬件电路构建**:系统可能整合微控制器、传感器、执行机构等硬件单元。例如,微控制器作为系统的心脏,负责接收输入信号,处理数据,指挥执行机构执行药片装填。传感器负责监测药片的数量瓶装进度,而执行机构如电机则负责实际完成装瓶动作。 3. **计数器**:在药片装瓶的操作过程中,计数器用于追踪已装入瓶子的药片总数,确保达到预设的剂量标准。这可能需要设计同步计数器或异步计数器,以实现精确计数触发装瓶操作。 4. **编码解码**:编码器将特定的信息(例如药片种类或剂量)转化为二进制编码,便于硬件设备进行处理;解码器则将这些编码解读为可执行的操作,如切换装瓶路径或启动封盖流程。 5. **触发器**:在系统中,触发器可用于在特定条件达成时启动或中止某个操作,例如当瓶子达到满载时关闭装填机制。 6. **传感器技术**:可能包含重量传感器、光电传感器或机械触碰开关,用于识别瓶子的存在、位置以及药片的数量。这些传感器的精确度直接关联到整个系统的性能水平。 7. **控制算法**...
内容概要:本文针对孤岛微电网在遭受拒绝服务(DoS)攻击下的安全稳定运行问题,提出了种基于混合系统理论的弹性二次控制策略,创新性地将动态事件触发机制DoS攻击防御进行协同设计。该方法在保障微电网电压、频率恢复及有功功率精确均分的同时,有效应对通信链路被恶意阻塞的安全威胁,实现了控制性能通信资源利用效率的双重优化。通过Simulink仿真平台Matlab代码实现,验证了所提策略在复杂网络攻击场景下的鲁棒性有效性,深入分析了系统稳定性条件及攻击容忍边界,为电力信息物理系统(CPS)在面临网络安全挑战时的可靠控制提供了理论依据技术路径。; 适合人群:具备电力系统自动化、分布式控制或网络安全等相关专业背景,熟悉Matlab/Simulink仿真环境,从事微电网控制、信息物理系统安全或弹性控制研究的研究生、科研人员及工程技术人员。; 使用场景及目标:① 提升高比例分布式能源接入背景下孤岛微电网在通信受限网络攻击耦合场景下的运行可靠性弹性恢复能力;② 实现低通信开销下的分布式协同控制,优化资源利用增强系统抗干扰性能;③ 为电力系统中安全-控制联合设计提供可复现的仿真模型技术方案,推动安全防护从被动响应向主动容忍转变。; 阅读建议:读者应结合文中提供的Matlab代码Simulink模型开展仿真实验,重点理解动态事件触发机制的设计原理及其混合系统稳定性分析的融合方法,建议延伸学习DoS攻击建模、弹性控制理论及相关安全性证明技术,以全面掌握该协同设计框架的核心思想实现细节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值