python 常见字符串与函数的用法详解


Posted in Python onNovember 23, 2018

strip去除空格

s = ' abcd efg '
print(s.strip())  #去除所有空格
print(s.lstrip())  #去除左边空格
print(s.rstrip())  #去除右边空格
print(s)
abcd efg
abcd efg 
 abcd efg
 abcd efg

大小写

s = 'abc defg'
print(s.upper())
print(s.upper().lower())
print(s.capitalize()) #首字母大写
ABC DEFG
abc defg
Abc defg

位置和比较

s_1 = 'abcdefg'
s_2 = 'abdefgh'
print(s_1.index('bcd'))
try:
  print(s_1.index('bce'))
except ValueError:
  print('ValueError: substring not found')

print(s_1 == s_1)  # cmp函数被Python3移除了
print(s_1 > s_2)
print(s_2 > s_1)

1
ValueError: substring not found
True
False
True

s = ''
if not s:
  print('true')
else:
  print('flase') #空字符串和flase是等价的
true

分隔和连接

s = 'abc,def,ghi'
print(s.split(','))
s = '123\n456\n789'
numbers = s.split('\n')  #按行分隔
numbers = s.splitlines() #按行分隔
print(numbers)
print('-'.join(numbers)) 

['abc', 'def', 'ghi']
['123', '456', '789']
123-456-789

常用判断

s = 'abcdefg'
print(s.startswith('abc'))  #判断是否以某个字符串为开头
print(s.endswith('efg'))   #判断是否以某个字符串为结尾
print('abcd1234'.isalnum())  #string中至少有一个字符,而且全是字母或者数字或者是字母和数字混合返回True,其他情况返回False
print('\tabcd1234'.isalnum()) 
print('abcd'.isalpha())    #string中至少有一个字符,而且全为字母,返回True,其他情况返回False
print('12345'.isdigit())   #输入字符串是否只由数字组成
print(' '.isspace())
print('acb125'.islower())
print('A1B2C'.isupper())
print('Hello world!'.istitle()) #检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写

True
True
True
False
True
True
True
True
True
False

函数

函数定义与默认参数

def func(x, y = 500):
  print(x, y)
func(150)
func(100, 200)
func(y = 300, x = 100)
150 500
100 200
100 300

可变参数

def func(name, *numbers): #加一个星号,就表示告诉python,在处理后面所有参数的时候,把这些参数放到一个数组里面
  print(name)
  print(numbers)
  print(type(numbers))
func('Tom', 1, 2, 3, 4)
Tom
(1, 2, 3, 4)
<class 'tuple'>    
#tuple - 元组,等价于只读数组,就是后面所有的参数都会作为一个数组

键字参数

def func(name, **kvs): # **意思是把它装到 key/value 字典里,转化成字典了
  print(name)
  print(kvs)
  print(type(kvs))
func('Jack', china = 'Beijing', uk = 'London')
Jack
{'china': 'Beijing', 'uk': 'London'}
<class 'dict'>

命名关键字参数

def func(a,b,c,*, china, uk): # *用于和普通参数做分割,*args一样效果
  print(china, uk)
func(1,2,3,china = 'Beijing', uk = 'London') # *后面传递的参数必须传入参数名
Beijing London

复杂情况

def func(a, b, c = 0, *args, **kvs):
  print(a, b, c, args, kvs)
func(1, 2)
func(1, 2, 3)
func(1, 2, 3, 'a', 'b')
func(1, 2, 3, 'a', 'b', china = 'Beijing', uk = 'London')
func(1, 2, 3, *('a', 'b'), **{'china':'Beijing', 'uk':'London'}) #提高代码的可读性
1 2 0 () {}
1 2 3 () {}
1 2 3 ('a', 'b') {}
1 2 3 ('a', 'b') {'china': 'Beijing', 'uk': 'London'}
1 2 3 ('a', 'b') {'china': 'Beijing', 'uk': 'London'}
def my_print(*args):
  print(*args) #传变量时,在变量前加上*号,代表把这个数组作为可变参数处理
  my_print('x = ',100, 'y = ',200)
x = 100 y = 200

函数可以作为参数

def sum(x,y,p = None):
  s = x + y 
  if p:
    p(s)
  return 


sum(100,200)
sum(100,200,print)

300
def cmp(x,y,cp = None):
  if not cp:
    if x > y:
      return 1
    elif x < y:
      return -1
    else:
      return 0
  else:
    return cp(x,y)

def my_cp(x ,y):
  if x < y:
    return 1
  elif x == y:
    return 0
  else:
    return -1

print(cmp(100,200))
print(cmp(100,200,my_cp))

-1
1

递归

把一个大问题分解成同样结构的小问题, 然后利用小问题的解得出大问题的解

def my_sum(i):
  if i < 0:
    raise ValueError
  elif i <=1:
    return i
  else:
    return i + my_sum(i - 1) # my_sum(i - 1)是它更小范围内的解,利用这个子问题的解得出当前的解

print(my_sum(1))
print(my_sum(2))
print(my_sum(3))
print(my_sum(10))
print(my_sum(100))
1
3
6
55
5050
# 递归的经典例子!
# 斐波那契数列 f(n) = f(n - 1) + f(n -2)
def fib(n):
  if n < 1:
    raise ValueError
  elif (n == 1) or (n == 2):
    return 1
  else:
    return fib(n - 1) + fib(n - 2)
print(fib(1))
print(fib(2))
print(fib(3))
print(fib(4))
print(fib(5))
print(fib(6))
1
1
2
3
5
8

总结

以上所述是小编给大家介绍的python 常见字符串与函数的用法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
pandas中去除指定字符的实例
May 18 Python
彻底理解Python中的yield关键字
Apr 01 Python
Pandas之MultiIndex对象的示例详解
Jun 25 Python
PyCharm2018 安装及破解方法实现步骤
Sep 09 Python
解决pycharm启动后总是不停的updating indices...indexing的问题
Nov 27 Python
如何使用python实现模拟鼠标点击
Jan 06 Python
使用 tf.nn.dynamic_rnn 展开时间维度方式
Jan 21 Python
Pyinstaller 打包发布经验总结
Jun 02 Python
pycharm 2020 1.1的安装流程
Sep 29 Python
python3 googletrans超时报错问题及翻译工具优化方案 附源码
Dec 23 Python
python数据可视化JupyterLab实用扩展程序Mito
Nov 20 Python
实战Python爬虫爬取酷我音乐
Apr 11 Python
django+mysql的使用示例
Nov 23 #Python
Linux下Python安装完成后使用pip命令的详细教程
Nov 22 #Python
Windows下Python3.6安装第三方模块的方法
Nov 22 #Python
Python第三方Window模块文件的几种安装方法
Nov 22 #Python
python实现归并排序算法
Nov 22 #Python
Python的iOS自动化打包实例代码
Nov 22 #Python
详解如何用django实现redirect的几种方法总结
Nov 22 #Python
You might like
Adnroid 微信内置浏览器清除缓存
2016/07/11 PHP
Laravel框架实现redis集群的方法分析
2017/09/14 PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
2019/03/21 PHP
MSN消息提示类
2006/09/05 Javascript
IE7提供XMLHttpRequest对象为兼容
2007/03/08 Javascript
基于Jquery制作的幻灯片图集效果打包下载
2011/02/12 Javascript
禁止你的左键复制实用技巧
2013/01/04 Javascript
jQuery把表单元素变为json对象
2013/11/06 Javascript
js校验表单后提交表单的三种方法总结
2014/02/28 Javascript
JavaScript实现同时调用多个函数的方法
2015/11/09 Javascript
jquery datatable服务端分页
2016/08/31 Javascript
Vue.js每天必学之组件与组件间的通信
2016/09/08 Javascript
js模糊查询实例分享
2016/12/26 Javascript
JS获取input[file]的值并显示在页面的实现方法
2018/03/09 Javascript
vue-cli 使用axios的操作方法及整合axios的多种方法
2018/09/12 Javascript
实例讲解v-if和v-show的区别
2019/01/31 Javascript
用node撸一个监测复联4开售短信提醒的实现代码
2019/04/10 Javascript
详解JavaScript对数组操作(添加/删除/截取/排序/倒序)
2019/04/28 Javascript
JS实现放大镜效果
2020/09/21 Javascript
对Python新手编程过程中如何规避一些常见问题的建议
2015/04/01 Python
python+OpenCV实现车牌号码识别
2019/11/08 Python
python数据分析工具之 matplotlib详解
2020/04/09 Python
Python新手学习raise用法
2020/06/03 Python
Python通过len函数返回对象长度
2020/10/22 Python
Jmeter调用Python脚本实现参数互相传递的实现
2021/01/22 Python
html5基础标签(html5视频标签 html5新标签用法)
2013/12/30 HTML / CSS
亚洲最大的眼镜批发商和零售商之一:Glasseslit
2018/10/08 全球购物
Urban Decay官方网站:美国化妆品品牌
2020/06/04 全球购物
会计人员岗位职责
2014/03/19 职场文书
项目采购员岗位职责
2014/04/15 职场文书
小学竞选班长演讲稿
2014/09/09 职场文书
社会体育专业大学生职业生涯规划书
2014/09/17 职场文书
2014年残联工作总结
2014/11/21 职场文书
法律进社区活动总结
2015/05/07 职场文书
2015年小学辅导员工作总结
2015/05/27 职场文书
音乐会主持人开场白
2015/05/28 职场文书