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中的面向对象和类的基本语法
Jun 13 Python
Ubuntu 下 vim 搭建python 环境 配置
Jun 12 Python
对python中return和print的一些理解
Aug 18 Python
python cx_Oracle的基础使用方法(连接和增删改查)
Nov 19 Python
python3 破解 geetest(极验)的滑块验证码功能
Feb 24 Python
Python简单定义与使用二叉树示例
May 11 Python
Python2.7实现多进程下开发多线程示例
May 31 Python
django settings.py 配置文件及介绍
Jul 15 Python
Python实现直播推流效果
Nov 26 Python
Python3.7黑帽编程之病毒篇(基础篇)
Feb 04 Python
Python 线性回归分析以及评价指标详解
Apr 02 Python
Ubuntu权限不足无法创建文件夹解决方案
Nov 14 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 地址栏信息的获取代码
2009/01/07 PHP
深入PHP数据加密详解
2013/06/18 PHP
php cURL和Rolling cURL并发方式比较
2013/10/30 PHP
php安装xdebug/php安装pear/phpunit详解步骤(图)
2013/12/22 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
2014/12/16 PHP
thinkPHP5框架分页样式类完整示例
2018/09/01 PHP
phpstorm 配置xdebug的示例代码
2019/03/31 PHP
使用EXT实现无刷新动态调用股票信息
2008/11/01 Javascript
Jquery 滑入滑出效果实现代码
2010/03/27 Javascript
一个原生的用户等级的进度条
2010/07/03 Javascript
javascript针对DOM的应用分析(四)
2012/04/15 Javascript
JS操作图片(增,删,改) 例子
2013/04/17 Javascript
JavaScript 判断用户输入的邮箱及手机格式是否正确
2013/12/08 Javascript
通过location.replace禁止浏览器后退防止重复提交
2014/09/04 Javascript
javascript实用方法总结
2015/02/06 Javascript
jQuery实现灰蓝风格标准二级下拉菜单效果代码
2015/08/31 Javascript
JavaScript实现弹出模态窗体并接受传值的方法
2016/02/12 Javascript
javascript中获取class的简单实现
2016/07/12 Javascript
浅谈在node.js进入文件目录的问题
2018/05/13 Javascript
node app 打包工具pkg的具体使用
2019/01/17 Javascript
Vue分页效果与购物车功能
2019/12/13 Javascript
python实现k均值算法示例(k均值聚类算法)
2014/03/16 Python
Python中Class类用法实例分析
2015/11/12 Python
浅析Python中的多条件排序实现
2016/06/07 Python
Python求平面内点到直线距离的实现
2020/01/19 Python
Python在centos7.6上安装python3.9的详细教程(默认python版本为2.7.5)
2020/10/15 Python
CSS3实现多重边框的方法总结
2016/05/31 HTML / CSS
HTML页面中添加Canvas标签示例
2015/01/01 HTML / CSS
生日宴会主持词
2014/03/20 职场文书
天地会口号
2014/06/17 职场文书
群众路线教育实践活动个人对照检查材料
2014/09/22 职场文书
2015年教师工作总结范文
2015/03/31 职场文书
检讨书怎么写
2015/05/07 职场文书
教师远程研修感悟
2015/11/18 职场文书
创业计划书之物流运送
2019/09/17 职场文书
Python可视化神器pyecharts绘制地理图表
2022/07/07 Python