上期提到的廖雪峰的教程,很快就看过去了,前面一章的协程和异步io,看了三遍还是很懵逼,主要是运行测试时,执行步骤完全看不懂。再往后的实战章节呢,是写一个网站,半个月的时间,感觉压力山大。特别是实操太少,很多章节虽然看懂了,但是没有自己码过、测试过。计划只能稍作调整,一方面先把教材《计算机编程导论——Python程序设计》通读一遍,课后习题码一码,前面几个章节基础内容主要是结构设计、字符串处理、函数等,其实在按键精灵的几轮学习中基本轻车熟路,所以很快看完2/5。而后面的内容:比如文件使用、用户界面设计、网络设计、异常处理、数据库等都是没怎么接触过的,可能要花一点时间了。另外一方面,也先结合网站上的教程,捋一下网站搭建所需的一些大的模块,整理出大概框架再比对教程,如果思路对了再动手也不迟。
然后我发现Python里面的小语法其实很多内容可以写一写,就随便挑个题目来分享一下,顺便,回顾上一期的三角形分类,突然发现有点问题,等腰三角形的条件漏了一种情况,教材上面的写法也是错误的(读书发现错误也是蛮有趣的一件事,可以吐槽一下
不过呢,如果没意识到错误还被误导了,就要呵呵呵呵了)。这里予以纠正一下:
if list[0]==list[1]!=list[2]:
result='等腰三角形'
要改成
if list[0]==list[1]!=list[2] or list[1]==list[2]!=list[0]:
result='等腰三角形'
等腰三角形的腰可能是长边,也可能是短边,由于前面代码对边长进行了排序,所以只需列出这2种可能即可,不需要列第三种。
题目1:将一段英文里单独的字母I,改成i。
给人的第一感觉就是word里面的查找替换,但又是改独立的I,比如
I’m这种的又不能改,那直接查找前后带空格的I,改成带空格的i?可如果两个独立的I前后靠着,只能改第一个,第二个还要再运行一次?后来思考再三,还是这样比较对路:将所有语句拆分开,遍历到独立的I就改i,然后再拼接回去。
#!usr/bin/python3
#coding:utf-8
a='''
hello,i'm benpaode jianpanxia,
how are you? I I am
fine,thank you.andI I you?
i'm fine,too
'''
b=a.split(' ')
c=[]
for i in range(len(b)):
if b[i]=='I':
b[i]='i'
c.append(b[i])
print(' '.join(c))
运行完结果:
hello,i'm benpaode jianpanxia,
how are you? i i am
fine,thank you.andI i you?
i'm fine,too
最近习题做了一些,感觉套路就是:要先想好思路,然后再按部就班的写代码;而之前做数学题,通常都是随便写写画画,答案就出来了。这个写代码完全不能写几行看一下再继续写,必须要规划好,一气呵成,不然很容易陷进去最后又得重新写
。
题目2:统计字符串中大、小写字母、数字及其他字符个数。
其实字符串是可以单个单个遍历的,然后判断单个字符的取值范围,但是觉得判断还是有点繁琐,索性正则表达式顺手拈来,就写成这样了
import re
def count(k):
b=re.findall(r"[a-z]",k)
c=re.findall(r'[A-Z]',k)
d=re.findall(r'[0-9]',k)
e=re.findall(r'.',k)
return (len(b),len(c),len(d),len(e)-len(b)-len(c)-len(d))
a='AAAbbbB啊啊啊B 342..%43dsf'
m=count(a)
print('小写字母、大写字母、数字、其他符号的个数分别为:%d,%d,%d,%d'%(count(a)[0],count(a)[1],count(a)[2],count(a)[3]))
另外网上翻了一下,看到这么一段代码,果真是逐个字符遍历,代码贴出来:
# coding: utf-8
import stringfrom collections import namedtuple
def str_count(s):
'''找出字符串中的中英文、空格、数字、标点符号个数'''
count_en = count_dg = count_sp = count_zh = count_pu = 0
s_len = len(s)
for c in s:
if c in string.ascii_letters:
count_en += 1
elif c.isdigit():
count_dg += 1
elif c.isspace():
count_sp += 1
elif c.isalpha():
count_zh += 1
else:
count_pu += 1
total_chars = count_zh + count_en + count_sp + count_dg + count_pu
if total_chars == s_len:
return namedtuple('Count', ['total', 'zh', 'en', 'space', 'digit', 'punc'])(s_len, count_zh, count_en, count_sp, count_dg, count_pu)
else:
print('Something is wrong!')
return None
return None
s = '上面是引用了官网的介绍,意思就是说 TensorBoard 就是一个方便你理解、调试、优化 TensorFlow 程序的可视化工具,你可以可视化你的 TensorFlow graph、学习参数以及其他数据比如图像。'
count = str_count(s)
print(s, end='\n\n')
print('该字符串共有 {} 个字符,其中有 {} 个汉字,{} 个英文,{} 个空格,{} 个数字,{} 个标点符号。'.format(count.total, count.zh, count.en, count.space, count.digit, count.punc))
原来python自带判断字符大小写、字母、标点、汉字的方法,可以直接调用 然后,通过代码一看就知道作者是个老司机,代码习惯值得我们学习,里面的异常提示语句,我几乎没这个意识。后面有个章节就是专门针对异常还有调试的,还需不断进步。不过还是觉得自己的代码更简洁一些
好了,本期就更新到这里。大家如果有感兴趣的章节或者问题,可以跟我互动,知无不言、言无不尽,虽然可能我也不会,但是可以学呀。下一期Python的更新,如果跟网站有关,估计要个把月之后了,敬请期待。
另,代写办公脚本代码,ERP、excel文档处理皆可,价格优惠。
初级教程
中级教程
高级教程
004-1自动打怪(网游)上|004-2 自动打怪 (网游) 下|
005-1自动打怪(2D)上|005-2自动打怪(2D)下|
006-1自动打怪实战脚本(横版网游篇)上|006-2自动打怪实战脚本(横版网游篇)下
007-1跑镖任务实战脚本(上)|007-2跑镖任务实战脚本(下)