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 相关文章推荐
python设置windows桌面壁纸的实现代码
Jan 28 Python
Python Flask-web表单使用详解
Nov 18 Python
python生成tensorflow输入输出的图像格式的方法
Feb 12 Python
使用pandas对矢量化数据进行替换处理的方法
Apr 11 Python
Django基础知识与基本应用入门教程
Jul 20 Python
Python实现将Excel转换成xml的方法示例
Aug 25 Python
Python常见数据结构之栈与队列用法示例
Jan 14 Python
Python 限制线程的最大数量的方法(Semaphore)
Feb 22 Python
Python动态声明变量赋值代码实例
Dec 30 Python
Python Tkinter Entry和Text的添加与使用详解
Mar 04 Python
关于Django Models CharField 参数说明
Mar 31 Python
Django 用户登陆访问限制实例 @login_required
May 13 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
php处理json时中文问题的解决方法
2011/04/12 PHP
php提示Warning:mysql_fetch_array() expects的解决方法
2014/12/16 PHP
javascript RadioButtonList获取选中值
2009/04/09 Javascript
jquery的ajax请求全面了解
2013/03/20 Javascript
JS两种定义方式的区别、内部原理
2013/11/21 Javascript
javascript中数组的冒泡排序使用示例
2013/12/18 Javascript
javascript实现的一个随机点名功能
2014/08/26 Javascript
JS实现的简洁二级导航菜单雏形效果
2015/10/13 Javascript
JavaScript中Boolean对象的属性解析
2015/10/21 Javascript
JavaScript实现DOM对象选择器
2016/09/24 Javascript
深入浅出webpack之externals的使用
2017/12/04 Javascript
vue 注册组件的使用详解
2018/05/05 Javascript
解决linux下node.js全局模块找不到的问题
2018/05/15 Javascript
详解基于Vue-cli搭建的项目如何和后台交互
2018/06/29 Javascript
解决angular2 获取到的数据无法实时更新的问题
2018/08/31 Javascript
小程序分享模块超级详解(推荐)
2019/04/10 Javascript
js实现移动端tab切换时下划线滑动效果
2019/09/08 Javascript
VUE单页面切换动画代码(全网最好的切换效果)
2019/10/31 Javascript
vue 百度地图(vue-baidu-map)绘制方向箭头折线实例代码详解
2020/04/28 Javascript
vue和小程序项目中使用iconfont的方法
2020/05/19 Javascript
Python删除windows垃圾文件的方法
2015/07/14 Python
python中实现字符串翻转的方法
2018/07/11 Python
详解python实现识别手写MNIST数字集的程序
2018/08/03 Python
Python中的异常处理try/except/finally/raise用法分析
2019/02/28 Python
详解django2中关于时间处理策略
2019/03/06 Python
python计算导数并绘图的实例
2020/02/29 Python
Python类和实例的属性机制原理详解
2020/03/21 Python
Python 如何批量更新已安装的库
2020/05/26 Python
手对手的教你用canvas画一个简单的海报的方法示例
2018/12/10 HTML / CSS
New Era英国官网:美国棒球帽品牌
2018/03/21 全球购物
英国领先的游戏零售商:GAME
2019/09/24 全球购物
大学生个人求职信范文
2013/09/21 职场文书
应届生财务会计求职信
2013/11/05 职场文书
法定代表人授权委托书
2014/09/19 职场文书
公司收款委托书范本
2014/09/20 职场文书
php png失真的原因及解决办法
2021/11/17 PHP