学习基础,入门
目标:办公自动化,希望能把CAD orcad allegro office 相关的重复操作通过python实现或者其它脚本实现
学习方式:
MOOC大学公开课 9周 通过9天学完
需要做笔记,并记录
以上计划是一天完成一周的课程,因课程每周大概只有2小时的时间,时间看下来一天完成课程是容易的,但增加课后练习后时间就不足了,因此调整计划为2-3天完成一周课程
目前在第二周的课后练习,预计今天完成,并开始第三周课程 06.09
0707 编辑
计划不合理,与实际不太相符,主要表现在上班忙的时候根本没时间学,一天一节也没看,截止目前学习完了第8章,还有最后一章待学习,预计本周可完成mooc的学习,也同步买了书,但做到80%的理解和会用,觉得应该不是一半个月能做到的,希望学完之后每天重新复习一点,争取能完成自动化办公的效果
如下是修改humlet程序,实现从words.txt读取单词,进行词频统计之后输出到wordcount.txt文本中,感觉效果还不错。
0813编辑
后来调整了计划,学习到第9周,最后一周了,其它的已完成,基本符合实际情况(略有迟),7月份找到一本翻译的python相关电子书: 《python编程快速上手,--让繁琐工作自动化》直接跳到第二部分学习了正则表达式和GUI处理的部分。
7.16之后项目紧张,之后一周出差,7.28开始做新项目,周期3个月,特别紧张,前期设计到现在,基本996,没时间学习。
截止目前也没看,课程还有最后一周的部分没完成,总体基本语法学习就到7.16基本结束。
后面准备继续练习,将重复的工作通过文件处理和GUI,这些操作,让计算机自动化
OA日报准备做成自动提交,目前尝试验证码识别有困难,只能识别到部分,小字和带噪点的识别不出,因此后面可能还只能做成半自动化的方式。
手动登陆后从文件读取对应的内容填入
#Hamlet词频统计(含Hamlet原文文本)
#CalHamletV1.py
#import jieba
#import codecs
def getText():
txt = open("words.txt", "r",encoding ='utf-8').read()
txt = txt.lower()
for ch in '!"#$%&()*+,-./:;<=>?@[\\]^_‘{|}~':
txt = txt.replace(ch, " ") #将文本中特殊字符替换为空格
return txt
wtxt = open("wordscounttest.txt","w")
hamletTxt = getText()
words = hamletTxt.split()
counts = {}
for word in words:
counts[word] = counts.get(word,0) + 1
items = list(counts.items())
items.sort(key=lambda x:x[1], reverse=True)
wordsnum = len(words)
print(wordsnum)
wtxt.write("{0:<10}\t{1:>5}\n".format("word","count"))#输出标题
for i in range(20):
word, count = items[i]
# if u'\u4e00' <= word<=u'\u9fff': #如何排除中文,不输出中文
# continue
print ("{0:<10}{1:>5}".format(word, count))
wtxt.write("{0:<10}\t{1:>5}\n".format(word, count))
wtxt.close()
第一天内容:
方**:IPO
实践:
看懂温度转换程序
程序语法元素
1.缩进:一行代码开始前的空白区域,表达程序的格式框架
2.注释:用于提高代码可读性的辅助性文字,不被执行
命名于保留字:数字不能开头
3.变量:程序中用于保存和表示数据的占位符号
4.保留字,关键字:被编程语言内部定义并保留使用的标识符
5.数据类型:供计算机程序理解的数据形式
数据类型:字符串、整数、浮点数、列表
列表类型:由0个或多个数据组成的有序序列
- 列表使用[ ]表示,采用逗号(,)分隔各元素
['F','f']表示两个元素'F'和'f'
- 使用保留字 in 判断一个元素是否在列表中
TempStr[-1] in ['C','c']判断前者是否与列表中某个元素相同
语句与函数
6.赋值语句:由赋值符号构成的一行代码
7.函数:根据输入参数产生不同输出的功能过程
8.输入和输出
input():从控制台获得用户输入的函数
输出函数 print()
以字符形式向控制台输出结果的函数
eval():去掉参数最外侧引号并执行余下语句的函数
- 缩进、注释、命名、变量、保留字
- 数据类型、字符串、 整数、浮点数、列表
- 赋值语句、分支语句、函数
- input()、print()、eval()、 print()格式化
Python程序语法元素分析
#TempConvert.py
TempStr = input("请输入带有符号的温度值: ")
if TempStr[-1] in ['F', 'f']:
C = (eval(TempStr[0:-1]) - 32)/1.8
print("转换后的温度是{:.2f}C".format(C))
elif TempStr[-1] in ['C', 'c']:
F = 1.8*eval(TempStr[0:-1]) + 32
print("转换后的温度是{:.2f}F".format(F))
else:
print("输入格式错误")
课后编程
题目一:
Hello World的条件输出
描述获得用户输入的一个整数,参考该整数值,打印输出"Hello World",要求:
如果输入值是0,直接输出"Hello World"
如果输入值大于0,以两个字符一行方式输出"Hello World"(空格也是字符)
如果输入值小于0,以垂直方式输出"Hello World"
#ifelseHelloworld.py
n = eval(input())
if n == 0:
print("Hello World")
elif n > 0:
print("He\nll\no \nWo\nrl\nd")
else:
for c in "Hello World":
print(c)
题目2
数值运算描述获得用户输入的一个字符串,格式如下:
M OP N
其中,M和N是任何数字,OP代表一种操作,表示为如下四种:+, -, *, /(加减乘除)
根据OP,输出M OP N的运算结果,统一保存小数点后2位。
注意:M和OP、OP和N之间可以存在多个空格,不考虑输入错误情况。
n = input()
print("{:.2f}".format(eval(n)))
分支语句:由判断条件决定程序运行方向的语句
疑问:
#TempConvert.py
TempStr = input("请输入带有符号的温777度值: ")
print(TempStr)
print("\n")
print(eval(TempStr[0:-1]))
#print(TempStr[0:3])
print(eval("1"))
输入9000C
输出:
请输入带有符号的温777度值: 9000C
疑问:eval()为什么只保留了输入的部分,而不是“请输入带有符号的温777度值: 9000C”