python3 - 7 Python数据类型-字符串

mac:10.15.3
pycharm: 2019.3
python:3.7
参考教材1https://www.runoob.com/python/python-strings.html
参考教材2https://www.cnblogs.com/skings/p/10217229.html

"""
Python 字符串
字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。

创建字符串很简单,只要为变量分配一个值即可。例如:
"""
var1 = "Hello World"
var2 = "我的目标是要爬取上小姐姐"
var3 = ""
print(var1)
print("var1[0] 的值是", var1[0])
print("var2[8:11] 的值是", var2[8:11])  # 和想象的不一样啊,性质都变了
print("var2[-1:-5] 的值是", var2[-5:-1])  # 手动狗头,感觉头上一片大草原
print("var2[-6:] 的值是", var2[-6:])  # 这回就对了
var3 = var2.replace("要爬取", "")  # 好玩够了,下面正式的研究一下
print("var3", var3)


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("index函数")

var4 = "小姐姐"

print('var2.index("要")的索引值是 ', var2.index("要"))
print('var2.index("姐")的索引值是 ', var2.index("姐"))
print('var2.index("姐姐")的索引值是 ', var2.index("姐姐"))
print('var2.rindex("姐")的索引值是 ', var2.rindex("姐"))  # 从右侧索引
print("var4中内容是在var2中的索引位置为", var2.index(var4))  # 反着写就会报错


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("capitalize函数")

var5 = "i 69 want to 69 BE sHy 69 wITh yOu!"

print("大写首字母", var5.capitalize())

"""
1 定义一个列表接收转换完的英文
2 循环判断下是否有输入,有转换格式后添加到lines
3 如果没有就退出循环
4 从列表中逐一打印结果

知识点
capitalize方法 - 用于把输入的词组每个单词都首字母大写
break函数 - 退出当前循环
"""
"""
# 方法一
lines = []

while True:
    s = input("请输入要转换成大写的字母:")

    if s:
        lines.append(s.capitalize())
    else:
        break

for i in lines:
    print(i)
"""

# ------------------------------------------------------
"""
# 方法二
class InputOutString(object):

    def __init__(self):
        self.str = ""

    def getString(self):
        self.str = input("请输入要转换成大写的字母:")

    def printString(self):
        print(self.str.capitalize())


strObj = InputOutString()

while True:
    strObj.getString()
    strObj.printString()
"""


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("upper函数.lower函数,title函数,casefold函数")

print("upper全部字母大写", var5.upper())
print("lower全部字母小写", var5.lower())
print("title全部单词首字母大写", var5.title())
print("title全部单词首字母大写", var5.casefold())  # lower() 方法只对‘A-Z’有效,对于其他语言中把大写转换为小写
# 的情况只能用 casefold() 方法。

print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("isupper函数.islower函数,istitle函数")  # 没有iscapitalize函数

print("isupper检查全部字母大写", var5.isupper())
print("islower检查全部字母小写", var5.islower())
print("istitle检查全部单词首字母大写", var5.istitle())


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("查找字符")
print("count函数,find函数,rfind函数")

print("count查找i出现 %s 次" % var5.count("i"))  # 查找字符i出现多少次,区分大小写
print("count从2开始i出现 %s 次" % var5.count("i", 2))
print("count查找69出现 %s 次" % var5.count("69"))

print("find 查找字母 i 返回", var5.find("i"))  # 查找子字符串,若找到返回索引值的下标值,若找不到返回-1
print("find 查找字母 z 返回 %s 是因为没查到" % var5.find("z"))
print("rfind 从右侧查找字母 i 返回", var5.rfind("i"))
print("rfind 从右侧查找 小姐姐 返回", var2.rfind("小姐姐"))
print("利用find下标做切片", var5[var5.find("sHy"):-1])


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("判断内用类型")
print("isalnum函数, isalpha函数, isdecimal函数, isdigit函数, isidentifier函数, isnumeric函数, isspace函数,")

print("以下全是数字吗?")
print("123 ".isalnum())  # 只能全是数字,有任何其他字符都 False,这里有个空格和回车
print("12.3".isalnum())
print("12+3j".isalnum())
print("123".isalnum())
print("")

print("以下全是正整数吗?")
print("3+4j".isdigit())
print("-123".isdigit())
print("123E".isdigit())
print("123".isdigit())
print("")

print("以下全是十进制的吗?")
print("123E".isdigit())
print("0x43".isdigit())
print("0100110101".isdigit())
print("")

print("以下全是英文字母吗?")
print("How much for one time".isalpha())  # 只能全是英文,有任何其他字符都 False ,这里有空格
print("How?".isalpha())
print("HowMuchForOneTime".isalpha())
print("")

print("以下是合法标识符吗?")
print("12_学习文件".isidentifier())
print("日 本人学习文件".isidentifier())
print("国产精品!".isidentifier())
print("欧美学习文件".isidentifier())
print("papapa".isidentifier())
print("")

print("以下是时间类型吗?")  # 这特么跟alnum有毛的区别!
print("20200202".isnumeric())
print("2020,02,02".isnumeric())
print("2020.02.02".isnumeric())
print("2020/02/02".isnumeric())
print("2020-02-02".isnumeric())
print("12E".isnumeric())
print("")

print("以下是空格吗?")
print(" ".isspace())
print("     ".isspace())


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("字符串的拼接")
print("join函数, ljust, rjust, center函数")


# 以空格为分隔符,插入字符串,也可以以别的为分隔符
print("  ".join(["来了?", "来了.", "来?", "来.", "来了么?",
                 "还没来.", "还没来?", "来了.", "还来么?", "不来了."]))

phone_num = "1358xxx9494"


def Notebook(num):
    x = phone_num[0:4]
    y = phone_num[4:7]
    z = phone_num[7:]
    num = "-".join([x, y, z])
    return num


print(Notebook(phone_num))

print('')

print("向右打手枪=".ljust(20, "·"))
print("=。向左打炮".rjust(20, "·"))
print("=。双管齐下=".center(30, "·"))


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("lstrip函数, rstrip函数, strip函数,")

print("8=o 8===o 双面夹击吧 o====8 o==8")
print("8=o 8===o <==++先把左边消灭干净o====8 o==8".lstrip(" 8===o"))
print("再把右边消灭干净++==> o====8 o==8".rstrip("o====8 "))
print("8=o 8===o <==++双面反击++==> o====8 o==8".strip("o====8 "))
# 感觉真傻B,我这是在干什么,有这时间谈个恋爱不好么,竟然在这找到了快感,我真是无可救药了.


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("maketrans函数, translate函数")
var6 = str.maketrans("abcdefg", "1234567")
print("abff".translate(var6))  # 意思就是将a用1代替,b用2代替,c用3代替
print("abhff".translate(var6))  # 意思就是将a用1代替,b用2代替,c用3代替
var6 = str.maketrans("赶快睡觉吧我等不及了", "时候不早了今天别走了")
print("赶快睡觉吧".translate(var6))
print("我等不及了".translate(var6))


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("replace函数")

print("她挣扎着说不,不要,真的不要".replace("不", "我", 1))  # 最后max添加数值就是替换个数
print("她挣扎着说不,不要,真的不要".replace("不", "我"))  #


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("split函数, splitlines函数")

print("Can I borrow a kiss?".split())  # 不加就是空格
print("1+2+3+4+5+6+7".split("+"))
print("1+2\r3+4".splitlines())  # 按照\n或者\n\r转换列表


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("Python 转义字符")

print("续行符 \ 程序过长时使用")
print("反斜杠 \\")
print('单引号\'')
print("响铃 \a")  # 这没弄响,在终端中能响
print("别\b搞我好吗")
print("帮我亲亲\n去洗洗")
print("再帮我亲一下\n\r滚")
print("换页符\f")
print("制表符")
print("Number\t\vtSquare\t\vCube")
for i in range(1, 11):
    print(i,"\t\t\v",i**2,"\t\t\v",i**3)


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("Python字符串运算符")

print(var3, "\n", var4)
print("var3 + var4", var3 + var4)
print("var4 * 3 ", var4 * 3)
print("var3[5]的值是 ", var3[5])
print("var3[5:]的值是", var3[5:])  # 后面不写就是到最后一个值并包括它
print("姐姐" in (var3 and var4))
print("老太婆" not in (var3 or var4))
print(r"\n\r\t\v所有转义都不生效了")


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("Python 字符串格式化")

print("%d点%s就回来了,当时我还在洗澡,就在那千钧一发%.2f秒的时间,我选择夺窗而逃" % (8, "老太婆", 0.01))

print("网站名:{name}, 地址 {url}".format(name="草榴社区", url="www.baidu.com"))

print(f"什么时候才能学会 {var2[6:]} ,感觉我的 {var4} 我离太远了")

"""
我感觉大部分现阶段可能都用不到,先记录下来等以后明白了再研究,我还会回来的!小姐姐!
     符号	 描述
      %c	 格式化字符及其ASCII码
      %s	 格式化字符串
      %d	 格式化整数
      %u	 格式化无符号整型
      %o	 格式化无符号八进制数
      %x	 格式化无符号十六进制数
      %X	 格式化无符号十六进制数(大写)
      %f	 格式化浮点数字,可指定小数点后的精度
      %e	 用科学计数法格式化浮点数
      %E	 作用同%e,用科学计数法格式化浮点数
      %g	 %f和%e的简写
      %G	 %F 和 %E 的简写
      %p   	 用十六进制数格式化变量的地址
"""


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("python引号")
print("I'm Robin!")
print("I'm Hancock!")
print("I'm jissbon")
print('"滚你给我滚远点!"')
print("""我觉得以现在的进度继续往下学,明年能学到爬小姐姐就不错了
我真是太傻太天真了,竟然真的以为在头条花了8块9就能学会python了.到现在了
连个门槛都没看见呢,这已经是四进宫学python了,是应该继续还是弃坑......""")


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------








你可能感兴趣的:(笔记,python)