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 uuid模块使用实例
Apr 08 Python
使用Python构建Hopfield网络的教程
Apr 14 Python
python去重,一个由dict组成的list的去重示例
Jan 21 Python
使用python serial 获取所有的串口名称的实例
Jul 02 Python
python开头的coding设置方法
Aug 08 Python
keras模型可视化,层可视化及kernel可视化实例
Jan 24 Python
在python image 中实现安装中文字体
May 16 Python
解决Pytorch自定义层出现多Variable共享内存错误问题
Jun 28 Python
keras的ImageDataGenerator和flow()的用法说明
Jul 03 Python
Python timeit模块原理及使用方法
Oct 10 Python
Python卷积神经网络图片分类框架详解分析
Nov 07 Python
Python Pygame实战之塔防游戏的实现
Mar 17 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中autoload的用法总结
2013/11/08 PHP
php curl模拟post请求小实例
2013/11/13 PHP
Laravel 模型使用软删除-左连接查询-表起别名示例
2019/10/24 PHP
PHP CURL实现模拟登陆并上传文件操作示例
2020/01/02 PHP
jquery做的一个简单的屏幕锁定提示框
2014/03/26 Javascript
javascript记住用户名和登录密码(两种方式)
2015/08/04 Javascript
canvas实现手机端用来上传用户头像的代码
2016/10/20 Javascript
VSCode中如何利用d.ts文件进行js智能提示
2018/04/13 Javascript
layui点击导航栏刷新tab页的示例代码
2018/08/14 Javascript
详解如何在vscode里面调试js和node.js的方法步骤
2018/12/24 Javascript
js form表单input框限制20个字符,10个汉字代码实例
2019/04/12 Javascript
编写更好的JavaScript条件式和匹配条件的技巧(小结)
2019/06/27 Javascript
Vue通过Blob对象实现导出Excel功能示例代码
2020/07/31 Javascript
[01:19:54]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#1Alliance VS EHOME
2016/03/03 DOTA
python中dir函数用法分析
2015/04/17 Python
python将unicode转为str的方法
2017/06/21 Python
Python使用装饰器模拟用户登陆验证功能示例
2018/08/24 Python
python selenium 弹出框处理的实现
2019/02/26 Python
搞清楚 Python traceback的具体使用方法
2019/05/13 Python
详解Python传入参数的几种方法
2019/05/16 Python
Python3enumrate和range对比及示例详解
2019/07/13 Python
python中pygame安装过程(超级详细)
2019/08/04 Python
如何以Winsows Service方式运行JupyterLab
2020/08/30 Python
英国现代市场:ARKET
2019/04/10 全球购物
一套VC试题
2015/01/23 面试题
美工的岗位职责
2013/11/14 职场文书
财务信息服务专业自荐书范文
2014/02/08 职场文书
精彩的广告词
2014/03/19 职场文书
我读书我快乐演讲稿
2014/05/07 职场文书
舞蹈兴趣小组活动总结
2014/07/07 职场文书
奥巴马当选演讲稿
2014/09/10 职场文书
2014年计划生育协会工作总结
2014/11/14 职场文书
2014年医院工作总结
2014/11/20 职场文书
学习《中小学教师职业道德规范》心得体会
2016/01/18 职场文书
Apache压力测试工具的安装使用
2021/03/31 Servers
教你用python实现12306余票查询
2021/06/30 Python