前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python——字符串及函数的设计使用

Python——字符串及函数的设计使用

作者头像
Ed_Frey
发布2019-07-04 14:01:51
1.2K0
发布2019-07-04 14:01:51
举报
文章被收录于专栏:奔跑的键盘侠奔跑的键盘侠

上期提到的廖雪峰的教程,很快就看过去了,前面一章的协程和异步io,看了三遍还是很懵逼,主要是运行测试时,执行步骤完全看不懂。再往后的实战章节呢,是写一个网站,半个月的时间,感觉压力山大。特别是实操太少,很多章节虽然看懂了,但是没有自己码过、测试过。计划只能稍作调整,一方面先把教材《计算机编程导论——Python程序设计》通读一遍,课后习题码一码,前面几个章节基础内容主要是结构设计、字符串处理、函数等,其实在按键精灵的几轮学习中基本轻车熟路,所以很快看完2/5。而后面的内容:比如文件使用、用户界面设计、网络设计、异常处理、数据库等都是没怎么接触过的,可能要花一点时间了。另外一方面,也先结合网站上的教程,捋一下网站搭建所需的一些大的模块,整理出大概框架再比对教程,如果思路对了再动手也不迟。

然后我发现Python里面的小语法其实很多内容可以写一写,就随便挑个题目来分享一下,顺便,回顾上一期的三角形分类,突然发现有点问题,等腰三角形的条件漏了一种情况,教材上面的写法也是错误的(读书发现错误也是蛮有趣的一件事,可以吐槽一下

不过呢,如果没意识到错误还被误导了,就要呵呵呵呵了)。这里予以纠正一下:

代码语言:javascript
复制
    if list[0]==list[1]!=list[2]:
        result='等腰三角形'

要改成

代码语言:javascript
复制
代码语言:javascript
复制
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,然后再拼接回去。
代码语言:javascript
复制
#!usr/bin/python3
#coding:utf-8
代码语言:javascript
复制
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

最近习题做了一些,感觉套路就是:要先想好思路,然后再按部就班的写代码;而之前做数学题,通常都是随便写写画画,答案就出来了。这个写代码完全不能写几行看一下再继续写,必须要规划好,一气呵成,不然很容易陷进去最后又得重新写

代码语言:javascript
复制
题目2:统计字符串中大、小写字母、数字及其他字符个数。
其实字符串是可以单个单个遍历的,然后判断单个字符的取值范围,但是觉得判断还是有点繁琐,索性正则表达式顺手拈来,就写成这样了
代码语言:javascript
复制
代码语言:javascript
复制
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]))
代码语言:javascript
复制
另外网上翻了一下,看到这么一段代码,果真是逐个字符遍历,代码贴出来:

# 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文档处理皆可,价格优惠。
按键精灵课程系列

初级教程

001按键精灵简介

002如何使用网络上免费的脚本资源

003鼠标连点器

004如何制作按键小精灵

005神盾的应用

006按键精灵会员介绍

中级教程

001如何录制自己的脚本

002如何让鼠标指哪点哪

003找色、找图、找字命令

004标记与子程序

005-1游戏自动补血补蓝 | 005-2判断与循环|

006二D网游跑图|

007网页版按键精灵

008关于office软件的操控

009鼠标形状的识别应用|

高级教程

001句柄的获取与使用|

002-1后台命令脚本|002-2游戏后台自动喊话|

003自动打怪实战脚本(3D网游篇)|

004-1自动打怪(网游)上|004-2 自动打怪 (网游) 下|

005-1自动打怪(2D)上|005-2自动打怪(2D)下|

006-1自动打怪实战脚本(横版网游篇)上|006-2自动打怪实战脚本(横版网游篇)下

007-1跑镖任务实战脚本(上)|007-2跑镖任务实战脚本(下)

008-1自定义变量:制作可设置选项的脚本|008-2 OCX自定义界面制作

009按键精灵插件的介绍

010-1如何识别屏幕上的数字|010-2验证码的识别

011-1按键精灵脚本界面-QUI介绍

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 奔跑的键盘侠 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档