shuiqinghan2012的个人空间 https://bbs.21ic.com/?875044 [收藏] [复制] [RSS]

日志

Python学习

已有 828 次阅读2019-6-5 22:06 |系统分类:兴趣爱好

学习基础,入门
目标:办公自动化,希望能把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


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)