Python中join函数和os.path.join用法 引用:https://blog.csdn.net/zmdzbzbhss123/article/details/52279008
Python中有join和os.path.join()两个函数,具体作用如下:
join:连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串
os.path.join(): 将多个路径组合后返回
一、函数说明
1、join()函数
语法:‘sep’.join(seq)
参数说明: sep:分隔符。可以为空 , seq:要连接的元素序列、字符串、元组、字典等
上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串
返回值:返回一个以分隔符sep连接各个元素后生成的字符串
2、os.path.join()函数
语法: os.path.join(path1[,path2[,......]])
返回值:将多个路径组合后返回
注:第一个绝对路径之前的参数将被忽略
二、实例
#对序列进行操作(分别使用' '与':'作为分隔符)
>>> seq1 = ['hello','good','boy','doiido']
>>> print ' '.join(seq1)
hello good boy doiido
>>> print ':'.join(seq1)
【hello:good:boy:doiido】
#对字符串进行操作
>>> seq2 = "hello good boy doiido"
>>> print ':'.join(seq2)
【h:e:l:l:o: :g:o:o:d: :b:o:y: :d:o:i:i:d:o】
#对元组进行操作
>>> seq3 = ('hello','good','boy','doiido')
>>> print ':'.join(seq3)
【hello:good:boy:doiido】
#对字典进行操作
>>> seq4 = {'hello':1,'good':2,'boy':3,'doiido':4}
>>> print ':'.join(seq4)
【boy:good:doiido:hello】
#合并目录
>>> import os
>>> os.path.join('/hello/','good/boy/','doiido')
【'/hello/good/boy/doiido'】
问题点1:
解释原因:
源代码:
问题点1中的 if admin.adminOption() 语句,若admin.adminOptin()方法(在源代码中)不返回值默认为Flase,即语句实际表达的意思是 if Flase,这样是不会执行这个if语句的,若返回值为0的,则也是表达 if Flase ,依然不会执行这个if语句,
但是当密码或者账号输入错误时,设置一个不为0的返回值,则问题点1 中 if admin.adminOption() 语句 实际表达的意思是 if True,则会执行了这个语句并返回一个值,则结束了整个程序,例如
def func():
return 1
print("1") #当同一段程序走到了return 则后面的print是不会执行了
func()
# 结果不打印任何东西
********************************************************
def func():
print("1")
return 1
func()
#结果打印 1
所以,当 问题点1 中 if admin.adminOption() 语句 一旦执行则会 return -1 (及时return 的不是 -1 是任何数字,字符串) ,后面的语句都不会再执行了
所以,在源代码中判断账户密码错误时 return -1 (任何非0 的数字,字符串) 都会使 问题点 1 中的
if admin.adminOption() 语句 执行。当账户密码均正确
时候,则return 0 这样
问题点 1 中的
if admin.adminOption() 语句 就不执行, 直接继续执行主程序中的代码
总结
if Flase
时, 则不执行该 if 语句。if True 则执行该 if 语句
当函数或者方法的同缩进的代码中return 一个任何数据类型是,其后面的代码也不执行
当函数或者方法的同缩进的代码中return 一个任何数据类型是,其后面的代码也不执行