week3记录

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__'之下的代码块不被运行。

2. 程序入口

对于很多编程语言来说,程序都必须要有一个入口,比如C,C++,以及完全面向对象的编程语言Java,C#等。如果你接触过这些语言,对于程序入口这个概念应该很好理解,C,C++都需要有一个main函数作为程序的入口,也就是程序的运行会从main函数开始。同样,Java,C#必须要有一个包含Main方法的主类,作为程序入口。

而Python则不同,它属于脚本语言,不像编译型语言那样先将程序编译成二进制再运行,而是动态的逐行解释运行。也就是从脚本第一行开始运行,没有统一的入口。

一个Python源码文件(.py)除了可以被直接运行外,还可以作为模块(也就是库),被其他.py文件导入。不管是直接运行还是被导入,.py文件的最顶层代码都会被运行(Python用缩进来区分代码层次),而当一个.py文件作为模块被导入时,我们可能不希望一部分代码被运行。

2.1 一个.py文件被其他.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 进行映射 联合使用,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值