从零开始的应届求职生活(自勉第三天)

一. 转义字符

1. 'n'  //字符n
   '\n' //一个字符  ---- 换行效果 --- 换行符 
   '\t' //制表符 
   '\b' //回退   
   '\r' //回车 

其中\t(tab)包括之前一共8个字符站位,原字符长度由空格站位。

练习eg1:abc\tij#k\n               解:abc    ij#            (从a开始不包括i一共站位8个字符,最后\n换行(不明显))。

eg2:ab*c\t*de\rf\tg\n              解:fb*c    gde         (需要注意的事\r回车,它始终以光标为起点,当回车后,光标在a的位置上,所以f覆盖了a)。

2. 字符常量,可有几种表示

eg:       'A'       '\101'     '\x41'  

编译后:65        0101     0x41

后2种不常用,直接明了表示即可。

二. 算术运算符(+ - * / % ++ --  ,)

1. 除法:1.如果是两个整型数 相除 效果相当于是整除
               2.程序出错       编译时 出错  --- 语法问题 
                                       运行时 出错  --- 逻辑问题 
               3.除法运算 的 被除数不能为 0

2. 求余:1.求余运算的运算数 必须是 整型 
               2.被(除)操作数 不能为 0 
               3.求余运算的结果的符号 取决于 左操作数 
        其中有种情况

int a = -10;
unsigned int b = 5;

printf("a = %u\n",a);

if (a + b > 0)
{
    printf("yes\n");
}
else
{
    printf("no");
}

结果为yes     原因是int本质上 是signed int 但是他和unsigned一起运算时,要统一为unsigned 原因可看下表:

当多种数字类型在一起运算时,低优先服从高优先级并变成高优先级的数字类型,所以结果为正。

这里涉及隐式类型转化:1:从右向左;2.:从下到上,不同精度的类型混合运算时,低精度往高精度转,上图为运算规则.

eg:10 + 'a' + 1.5 - 8765.1234 * 'b'            结果为double类型。

---------------------------------------------------------------------------------------------------------------------------------

3. ++(自增)

a++   //后置++          ++a   //前置++
    先用后加                   先加后用 

  注意:
        1.   运算规则 ,单独使用时,没区别 
           参与到别的运算中时,此时运算规则发挥作用 
        2. 运算数必须是个左值 

其中左值为能够放在左边的称为左值(可以被定位的:一般为变量)

       右值为只能放到右边的称为右值 (不能被定位的:一般为常量,表达式)

练习eg:i+++i   i初始值为1

里面设计贪心原则:从左到右,逐个扫描字符, 将字符尽可能多的结合成c语言的运算符 

它可以拆分为 (i ++) +i,所以结果为(1+1)+1 = 3

eg2:i+++++i

先对他拆分    i++   ++   +i,这里出现了i++ 之后又在它的基础上++,这里涉及上面的注意2:运算数必须是个左值,i++不是左值,而是一个表达式,与原则矛盾,故编译错误。所以不要对同一个变量连续多次 ++  --。

4.--(自减)与++(自加)运算一致

5.注意优先级 谭浩强第三版p356 优先级有详尽表格。

6. 不同类型的数值混合赋值时,

eg1:高精度 =>低精度  double/float => int    ---- 精度丢失

eg2. 长类型 => 短类型   --- 高位截断,其中小端(pc)记录是从低位向高位记录,所以会高位会无法记录,从而高位截断。

eg3:短类型 => 长类型   无符号 短类型 => 长类型   高位补0
                                        有符号 短类型 => 长类型   高位补 符号位

7.逗号运算:整个逗号运算表达式中,最后一个表达式的结果(逗号优先级最低)

eg:

int i = 0;
int result;
result = (1+2,i++,3+4);
printf("result = %d\n",result);
printf("i = %d\n",i);
return 0;

结果:result = 3   i= 1,其中1+2 和3+4之间有逗号,优先级最低,所以result只需算到1+2即可,i++不受影响(优先级高)。

算术运算 > 赋值 > 逗号运算 。

三.

import os from gensim import corpora, models # ### 1LDA # 文件路径规范化 file_path = os.path.normpath(r"E:/bert/LDA/NLP_word.txt") # 读取数据 corpus = [] dictionary = corpora.Dictionary() with open(file_path, 'r', encoding='utf-8') as f: for line in f: words = [word for word in line.strip().split() if word] if words: # 跳过空行 dictionary.add_documents([words]) corpus.append(dictionary.doc2bow(words)) # 训练LDA模型 lda_model = models.LdaModel( corpus=corpus, id2word=dictionary, num_topics=6, passes=15, random_state=100 ) # 输出主题 for idx, topic in lda_model.print_topics(): print(f"主题#{idx}: {topic}") # ### 2可视化 # In[29]: import pyLDAvis import pyLDAvis.sklearn # In[31]: pic = pyLDAvis.sklearn.prepare(lda, tf, tf_vectorizer) #pyLDAvis.display(pic) pyLDAvis.save_html(pic, 'lda_pass'+str(n_topics)+'.html') #pyLDAvis.display(pic) #去工作路径下找保存好的html文件 #和视频里讲的不一样,目前这个代码不需要手动中断运行,可以快速出结果 D:\anaconda3\python.exe E:/bert/LDA/LDA_test.py Traceback (most recent call last): File "E:\bert\LDA\LDA_test.py", line 36, in <module> import pyLDAvis ModuleNotFoundError: No module named 'pyLDAvis' 主题#0: 0.003*"赐封" + 0.003*"花" + 0.003*"叠石溪" + 0.003*"夫妇" + 0.003*"鼎甲" + 0.003*"金口玉言" + 0.003*"丹墀" + 0.003*"藻井" + 0.003*"孔孟" + 0.003*"义" 主题#1: 0.004*"旌" + 0.004*"闽北书院" + 0.004*"程门" + 0.004*"霞" + 0.004*"自勉" + 0.004*"三株" + 0.004*"莅" + 0.004*"严翼" + 0.004*"岭南书院" + 0.004*"康熙二十年" 主题#2: 0.004*"会善寺" + 0.004*"二将军" + 0.004*"建" + 0.004*"九经" + 0.004*"康熙二十一年" + 0.004*"读书" + 0.004*"廪生" + 0.004*"明嘉靖" + 0.004*"兴" + 0.004*"程朱理学" 主题#3: 0.004*"雅" + 0.004*"祼奠" + 0.004*"诚" + 0.004*"向" + 0.004*"祼" + 0.004*"张载" + 0.004*"耿逸庵" + 0.004*"析理" + 0.004*"嵩阳观" + 0.004*"难" 主题#4: 0.004*"宸翰" + 0.004*"洛学" + 0.004*"始" + 0.004*"主敬穷理" + 0.004*"忠孝节义" + 0.004*"肄业" + 0.004*"汉" + 0.004*"诘" + 0.004*"廊庑" + 0.004*"鸢飞鱼跃" 主题#5: 0.003*"烟霞" + 0.003*"彼废彼兴" + 0.003*"朱甍" + 0.003*"欧阳修" + 0.003*"黝垩" + 0.003*"旧址" + 0.003*"讲会录" + 0.003*"碑记" + 0.003*"天晴日朗" + 0.003*"蒸云沛雨" 进程已结束,退出代码1
最新发布
11-05
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值