9/16 周日
熟悉github用法,尝试把我的代码pull上去
逛阳哥的github账号,
github 网站也有快捷键哦 shift+/ 可以查看具体用法
github网站响应缓慢
解决办法:
为了提高速度,可以使用HOSTS加速对Github网站加载的资源网站域名解析。
具体做法:
修改 C:\Windows\System32\drivers\etc 中的hosts文件(PS:若没有修改权限,可以鼠标右键,属性,安全,修改权限。或者将hosts文件复制到桌面,修改之后,复制到原文件夹),将下面一段话添加到hosts文件中
上传文件.
出现changes------填summary-----commit to master -----pusu(ctrl+p)
另外,网上的库需要先在网络上clone到本地, github的 desktop中才会有显示.
9/17 周一
上午:读py书+信息论的课
中午:睡觉1h
下午:2-5 py 做了一道题,解决了几个原来碰到的问题.
PYCHARM +GIT+GITHUB 已经完成
pycharm更新到github----------commit之后,再push
Pycharm 调试
设置断点 在行号后单击(双击取消),熟悉使用debug的 方法和技巧.
step into step over
!step out : 当单步执行到子函数内时,用step out就可以执行完子函数余下部分,并返回到上一层函数。
from..import * 和import的区别
import 模块:导入一个模块;注:相当于导入的是一个文件夹,是个相对路径。
from…import:导入了一个模块中的一个函数;注:相当于导入的是一个文件夹中的文件,是个绝对路径。
import 导入模块,每次使用模块中的函数都要是定是哪个模块。
from…import * 导入模块,每次使用模块中的函数,直接使用函数就可以了;注因为已经知道该函数是那个模块中的了。
decimal类型可以进行精确计算, 浮点型是不能精确计算的.
蒙特卡洛方法计算pi
randint(a,b ) 输出(a,b)之间的任一整数.
若为randint(0,1) 则输出 0或1
如何简单地理解Python中的if __name__ == '__main__'
1. 摘要
假如你叫 小明.py,在朋友眼中,你是小明(__name__ == '小明');在你自己眼中,你是你自己(__name__ == '__main__')。
if __name__ == '__main__'的意思是:当.py文件被直接运行时,if __name__ == '__main__'之下的代码块将被运行;当.py文件以模块形式被导入时,if __name__ == '__main__'之下的代码块不被运行。
对于很多编程语言来说,程序都必须要有一个入口,比如C,C++,以及完全面向对象的编程语言Java,C#等。如果你接触过这些语言,对于程序入口这个概念应该很好理解,C,C++都需要有一个main函数作为程序的入口,也就是程序的运行会从main函数开始。同样,Java,C#必须要有一个包含Main方法的主类,作为程序入口。
而Python则不同,它属于脚本语言,不像编译型语言那样先将程序编译成二进制再运行,而是动态的逐行解释运行。也就是从脚本第一行开始运行,没有统一的入口。
一个Python源码文件(.py)除了可以被直接运行外,还可以作为模块(也就是库),被其他.py文件导入。不管是直接运行还是被导入,.py文件的最顶层代码都会被运行(Python用缩进来区分代码层次),而当一个.py文件作为模块被导入时,我们可能不希望一部分代码被运行。
假设我们有一个const.py文件,内容如下:
PI = 3.14
def main():
print("PI:", PI)
main()
# 运行结果:PI: 3.14
现在,我们写一个用于计算圆面积的area.py文件,area.py文件需要用到const.py文件中的PI变量。从const.py中,我们把PI变量导入area.py:
from const import PI
def calc_round_area(radius):
return PI * (radius ** 2)
def main():
print("round area: ", calc_round_area(2))
main()
'''
运行结果:
PI: 3.14
round area: 12.56
'''
- 15
2.2 修改const.py,添加if __name__ == "__main__"
我们看到const.py中的main函数也被运行了,实际上我们不希望它被运行,因为const.py提供的main函数只是为了测试常量定义。这时if __name__ == '__main__'派上了用场,我们把const.py改一下,添加if __name__ == "__main__":
PI = 3.14
def main():
print("PI:", PI)
if __name__ == "__main__":
main()
运行const.py,输出如下:
PI: 3.14
- 1
运行area.py,输出如下:
round area: 12.56
- 1
如上,我们可以看到if __name__ == '__main__'相当于Python模拟的程序入口,Python本身并没有这么规定,这只是一种编码习惯。由于模块之间相互引用,不同模块可能有这样的定义,而程序入口只有一个。到底哪个程序入口被选中,这取决于__name__的值。
9/18 周二
上午:英语4节,英语课的收获太低,找一点事情做.
中午:睡觉
下午:pycharm+github, 过敏性鼻炎相关方法 13:45-----15:03 复习昨日
移动通信课----玩手机了.---------
晚上:锻炼----洗澡---吃饭 2小时.
先解决 课 的问题.
NS3的第一次作业,但是有问题.
9/19 周三
上午:1.读python核心编程 2.随机过程,学的不好,听不懂
中午:睡觉,洗衣服
下午:读python,上NS3
晚上:调通代码,算法的复杂度判断问题.
在子函数内定义变量时, 使用关键字 global ,则将子函数内的局部变量变成了全局变量.
算法的优化:
哈希(散列)表-------就像是 字典, 采用某种方法,使得键 与值一一对应..但是当碰到key1 != key2 但是f(key1) = f(key2) 的状态,叫做哈希冲突. 并把key1和 key2称为这个散列函数的同义词(synonym)
为了尽可能地减少哈希冲突发生的可能性:1.尽量使各个文字均匀地分布在新华字典里,减少100个字出现在同一页,这种极端情况的出现.
2.关键字比较小的变化能够引起哈希值(页码)极大的变化. 比如an 到ai 对应的新华字典的页数分别为100和500页.
那么如何设计这个哈希函数(散列函数)呢:
1.直接定址法:
f(key)=key
适用于查找表较小且连续的情况,很少用到
2.留余数法
f( key ) = key mod p ( p ≤ m ), m为表长
经常采用的算法叫做time33算法.
9/20
9/21
9点半到
上午:鼻炎相关
中午:12:40-13:40 解决便签问题
下午:团队建设 UNO和大富翁
晚上:7点09 解决所有便签问题
计算机产生随机数的一种方法: 线性同余法.Linear congruential generator
同余数,顾名思义,两个数分别除以一个自然数,得到的余数相同.
该方法使用的公式为:
具体分析: A.BM其中是产生器设定的常数。 LCG的周期最大为M,但大部分情况都会少于M。要令LCG达到最大周期,应符合一些条件.
序列的第一项被称为种子,这个种子一般从系统时间当中取
9/22
全天 安装ubuntu,装NS3,写老师的作业.
,,,清理磁盘
,,,完成作业
vim和记事本或WORD不一样,不是一打开后就可以输入文字,此时它处于正常模式。
vim一共有4个模式:
正常模式 (Normal-mode) 插入模式 (Insert-mode) 命令模式 (Command-mode)可视模式 (Visual-mode)
正常模式
启动vim后默认处于正常模式。不论位于什么模式,按下<Esc>键(有时需要按两下)都会进入正常模式。
插入模式
在正常模式中按下i, I, a, A等键,会进入插入模式。现在只用记住按i键会进行插入模式。在插入模式中,击键时会写入相应的字符。
命令模式
在正常模式中,按下:(英文冒号)键,会进入命令模式。在命令模式中可以执行一些输入并执行一些vim或插件提供的指令,就像在shell里一样。这些指令包括设置环境、文件操作、调用某个功能等等。
常用的命令有:q(退出)、q!(强制退出)、w(保存)、wq(保存并退出)。
可视模式
在正常模式中按下v, V, <Ctrl>+v,可以进入可视模式。可视模式中的操作有点像拿鼠标进行操作,选择文本的时候有一种鼠标选择的即视感,有时候会很方便。
1.在终端中输入vi进入vi编辑器。
在编辑器的插入模式下粘贴好shell命令。 按esc退出插入模式。按:进入命令模式,输入 wq mysetup 将文件保存为mysetup并退出。
2.在终端中编译文件。 chmod +x mysetup 注意有空格!!原教程里写错了!
3.在终端中运行bash脚本。 ./mysetup
终端一次运行多个命令。 使用bash脚本。
ctrl+alt+ 上或者下 ===切换工作区
或者用搜索键
当显示 正在处理用于 libc-bin(2.27-3ubuntu1)的触发器 时
使用sudo apt-get install -f 命令
这个命令是修复依赖关系(depends)的命令,就是假如你的系统上有某个package不满足依赖条件,这个命令就会自动修复,安装那个package依赖的package。
切换目录 cd 是 change directory的缩写
cd /home/zhangyanhe/下载,最好不要在中文目录下放东西
./ns-3.29 .表示省略前面的路径名了,这个文件夹就在当前路径下
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 17: ordinal not in range(128)
原因。我的目录有个叫下载,名称是中文的容易出问题。
写第二次作业的文档
1.安装ubuntu
2.安装NS3
3.NS3的例子验证。
截图 shift+prtsc
vim和记事本或WORD不一样,不是一打开后就可以输入文字,此时它处于正常模式。
vim一共有4个模式:
正常模式 (Normal-mode) 插入模式 (Insert-mode) 命令模式 (Command-mode)可视模式 (Visual-mode)
正常模式
启动vim后默认处于正常模式。不论位于什么模式,按下<Esc>键(有时需要按两下)都会进入正常模式。
插入模式
在正常模式中按下i, I, a, A等键,会进入插入模式。现在只用记住按i键会进行插入模式。在插入模式中,击键时会写入相应的字符。
命令模式
在正常模式中,按下:(英文冒号)键,会进入命令模式。在命令模式中可以执行一些输入并执行一些vim或插件提供的指令,就像在shell里一样。这些指令包括设置环境、文件操作、调用某个功能等等。
常用的命令有:q(退出)、q!(强制退出)、w(保存)、wq(保存并退出)。
可视模式
在正常模式中按下v, V, <Ctrl>+v,可以进入可视模式。可视模式中的操作有点像拿鼠标进行操作,选择文本的时候有一种鼠标选择的即视感,有时候会很方便。
!!!编辑器不会用。
1.在终端中输入vi进入vi编辑器。
在编辑器的插入模式下粘贴好shell命令。 按esc退出插入模式。按:进入命令模式,输入 wq mysetup 将文件保存为mysetup并退出。
2.在终端中编译文件。 chmod +x mysetup 注意有空格!!原教程里写错了!
3.在终端中运行bash脚本。 ./mysetup
终端一次运行多个命令。 使用bash脚本。
ctrl+alt+ 上或者下 ===切换工作区
或者用搜索键
当显示 正在处理用于 libc-bin(2.27-3ubuntu1)的触发器 时
使用sudo apt-get install -f 命令
这个命令是修复依赖关系(depends)的命令,就是假如你的系统上有某个package不满足依赖条件,这个命令就会自动修复,安装那个package依赖的package。
切换目录 cd 是 change directory的缩写
cd /home/zhangyanhe/下载,最好不要在中文目录下放东西
./ns-3.29 .表示省略前面的路径名了,这个文件夹就在当前路径下
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 17: ordinal not in range(128)
原因。我的目录有个叫下载,名称是中文的容易出问题。
写第二次作业的文档
1.安装ubuntu
2.安装NS3
3.NS3的例子验证。
截图 shift+prtsc
9/23
python的matplotlib库
windows下有py2和py3,使用pip指令装matplotlib时,装到py2中了.所以说从py3中调不出来,
集成开发环境真是好用啊,安装matplotlib这种第三方库很方便!
碰到问题不要急躁,一点点想解决办法.
https://blog.csdn.net/cysion1989/article/details/78349779
import matplotlib.pyplot as plt
plt.plot()
maketrans建立映射关系 和translate 进行映射 联合使用,