python初学之一

简介:

说明:

    学习python也有些日子,但从未真正用过,己经在心里谴责了N次了,终于下决定将自己学习的过程记录下来,虽然我这个人没有什么优点,但一坚持万一变成优点了呢!


一、实现一个函数isDuplicate(s),接受一个字符串,判断这个符串是否含有重复的字符,如果有的话函数返回True,没有的话返回False

1、思路:

    a、将输入的字符串转换成列表,字符串切片与列表比较,用list.count()>1则表示有重复字符,返回ture,并将原来的字符串及重复的字符输出

    b、如果列表循环完所有元素,扔没有找到重复的元素,则返回False 并输出源字符串

2、脚本内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/python
#! -*- coding:utf-8 -*-
import  string
inputString = raw_input ( "请输入你要判断的字符串:" )
punctuation = string.punctuation 
#sting.punctuation里面包含了32个英文标点符号
identify = ' ' * 32
table = string.maketrans(punctuation,identify)
#makerans接受两个等长的参数,形成一个对应表
new_string = inputString.translate(table).replace( ' ' ,'')
#先用对应表和translate函数将字符串里面的标点符号用空格代替,然后去掉空格
def  isDuplicate(new_string):
         l_str1 = list (new_string)
         l_len = len (l_str1)
         l_str2 = []
         for  in  xrange ( 0 ,(l_len - 1 )):
                 sum = int (l_str1.count(new_string[i]))
                 
                 if  sum  1  :
                         l_str2.extend(new_string[i])                        
         if  l_str2:
             print  'source string :%s'  % new_string
             print  "True"
             isDuplicate_list = set (l_str2)
             isDuplicate_str =  [j  for  in  isDuplicate_list]
             print  '-' .join(isDuplicate_str)
         else :
             print  "False"
             print  'source string :%s'  % new_string                
isDuplicate(new_string)

3、用到的知识:

    a、脚本中引用中文编码,需要指定字符编码

    b、字符串处理模块中的函数之--string.punctuation,在这里定义了32位英文标点符号

1
2
3
string.punctuation 
In [ 3 ]:  help (string.punctuation)
no Python documentation found  for  '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'

    c、字符串处理模块中的函数之--string.maketrans,形成两个等长字符串

1
2
3
4
5
6
7
8
9
10
string.maketrans
In [ 4 ]:  help (string.maketrans)
Help  on built - in  function maketrans  in  module strop:
 
maketrans(...)
     maketrans(frm, to)  - > string
     
     Return a translation table (a string of  256  bytes  long )
     suitable  for  use  in  string.translate.  The strings frm  and  to
     must be of the same length.

    d、将字符串转换成列表--list(string)、列表长度len(list)、涉及到列表的开始位置(从0开始)

    f、xrange  函数说明:用法与range完全相同,所不同的是生成的不是一个数组,而是一个生成器。

       g、字符串切片,列表元素统计

       h、字符串追加到列表

       i、for 语句与if 语句的使用,需要说明的是在for语句中也可以使用else子句

       j、set用法,列表解析,列表合并为字符串

       k、函数的简单调用

二、实现一个函数isPalindrome(s),接受一个字符串参数,判断字符串是否是回文

1、思路:

        a、将要输入的字符反转

        b、使用深copy引用源串

        c、判断列表是否相同

2、脚本内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/usr/bin/python
#! -*- coding:utf-8 -*-
   
import  string
import  copy
inputString = raw_input ( "请输入你要判断的字符串:" )
punctuation = string.punctuation  #sting.punctuation里面包含了32个英文标点符号
identify = ' ' * 32
table = string.maketrans(punctuation,identify) #makerans接受两个等长的参数,形成一个对应表
new_list = inputString.translate(table).replace( ' ' ,'') #先用对应表和translate函数将字符串
#里面的标点符号用空格代替,然后去掉空格
   
inputString = list (new_string) #转换成列表,为的是使用反转函数
temp = copy.deepcopy(inputString) #深拷贝,如果只是用简单的等于号的话,
#那样只是引用而已,inputstring改变了,temp也会改变的,所以要深拷贝
inputString.reverse() #将列表反转
print  inputString #打印出列表,为的是输出结果的时候,能观察上面的操作结果如何
print  temp
if  temp = = inputString: #判断是否相等
     print  "是回文"
else :
     print  "不是回文"

3、用到的知识:

    a、将字符转换为列表

    b、深copy 

    c、使用列表的反转函数 

    d、打印两个列表

    f、if判断列表是否相同

    g、输出结果

注:最近发现一个不错的python在线编辑器,http://pythontutor.com/visualize.html#mode=edit ,用着很不错,类似于单步解析,对我这样菜鸟太有用了。










本文转自 jinlinger 51CTO博客,原文链接:http://blog.51cto.com/essun/1604507,如需转载请自行联系原作者
目录
相关文章
|
安全 Python
初学Python——字典
一、定义 什么是字典? 字典是一种数据类型,是一系列数据的组合。 每一个数据单元都分为key和value,key也称主键,具有唯一性,不可重复。value可以理解成是key对应的值。 1 info={ 2 1:"wo shi shei", 3 2:"sun wu kong", 4 "stu001":"alex", 5 "stu002":"zhangyang", 6 7 } 如上,key可以是int型,也可以是字符型,value亦是。
1200 0
|
网络安全 Python 人工智能
初学python 遇到的坑
这最近人工智能比较火,看了一下大多都是python的代码,最近看看python 的代码,一出来就遇到了坑,空格的问题先不说了直接上代码吧 # coding = utf-8 import urllib.
1453 0
|
6天前
|
Python
Python编程中的异常处理:理解与实践
【9月更文挑战第14天】在编码的世界里,错误是不可避免的。它们就像路上的绊脚石,让我们的程序跌跌撞撞。但是,如果我们能够预见并优雅地处理这些错误,我们的程序就能像芭蕾舞者一样,即使在跌倒的边缘,也能轻盈地起舞。本文将带你深入了解Python中的异常处理机制,让你的代码在面对意外时,依然能保持优雅和从容。
141 73
|
6天前
|
人工智能 数据挖掘 数据处理
揭秘Python编程之美:从基础到进阶的代码实践之旅
【9月更文挑战第14天】本文将带领读者深入探索Python编程语言的魅力所在。通过简明扼要的示例,我们将揭示Python如何简化复杂问题,提升编程效率。无论你是初学者还是有一定经验的开发者,这篇文章都将为你打开一扇通往高效编码世界的大门。让我们开始这段充满智慧和乐趣的Python编程之旅吧!
|
4天前
|
数据采集 机器学习/深度学习 人工智能
Python编程入门:从零基础到实战应用
【9月更文挑战第15天】本文将引导读者从零开始学习Python编程,通过简单易懂的语言和实例,帮助初学者掌握Python的基本语法和常用库,最终实现一个简单的实战项目。文章结构清晰,分为基础知识、进阶技巧和实战应用三个部分,逐步深入,让读者在学习过程中不断积累经验,提高编程能力。
|
5天前
|
机器学习/深度学习 数据采集 人工智能
探索Python的奥秘:从基础到进阶的编程之旅
在这篇文章中,我们将深入探讨Python编程的基础知识和进阶技巧。通过清晰的解释和实用的示例,无论您是编程新手还是有经验的开发者,都能从中获得有价值的见解。我们将覆盖从变量、数据类型到类和对象的各个方面,助您在编程世界里游刃有余。
23 10
|
1天前
|
人工智能 数据挖掘 开发者
Python编程入门:从基础到实战
【9月更文挑战第18天】本文将带你走进Python的世界,从最基本的语法开始,逐步深入到实际的项目应用。无论你是编程新手,还是有一定基础的开发者,都能在这篇文章中找到你需要的内容。我们将通过详细的代码示例和清晰的解释,让你轻松掌握Python编程。
15 5
|
4天前
|
存储 机器学习/深度学习 数据挖掘
深入浅出:Python编程入门与实践
【9月更文挑战第16天】本文以“深入浅出”的方式,引领读者步入Python编程的世界。从基础语法到实际应用,我们将一步步探索Python的魅力所在。无论你是编程新手,还是希望拓展技能的老手,这篇文章都将为你提供有价值的信息和指导。通过本文的学习,你将能够编写出简单而实用的Python程序,为进一步深入学习打下坚实的基础。让我们一起开始这段编程之旅吧!
|
4天前
|
存储 Python 容器
Python编程基础第二天学习笔记
Python编程的第二天学习是建立在基础概念上的深化和扩展,强调了基本语法、数据类型、控制结构和函数的重要性。通过实践这些概念,可以增强对Python编程语言的理解,并为后续的高级学习打下坚实的基础。继续实践并逐渐探索更复杂的编程任务将有助于巩固和扩展这些基础知识。
23 7
|
4天前
|
机器学习/深度学习 存储 人工智能
探索Python编程的魔法:从基础到进阶
【9月更文挑战第16天】本文将带领你进入Python编程的世界,无论你是初学者还是有一定经验的开发者。我们将一起揭开Python编程的神秘面纱,通过实际案例和代码示例,深入浅出地探讨Python的基础语法、数据结构、面向对象编程以及函数式编程等核心概念。文章旨在提供一条清晰的学习路径,帮助你构建坚实的编程基础,并逐步过渡到更高级的编程技巧。无论你的目标是数据分析、网络开发还是机器学习,这篇文章都将为你打下扎实的基础,让你在编程的道路上越走越远。
17 6