一,数据类型的转换

1常用的数据类型有int,str,bool三种;

  1. int是整型:一般的操作是查找数据的二进制长度bit_length()
  2. 一般数据有:
  3. 1)二进制:逢二进一
  4. 2)十进制,(0-9)逢十进一
  5. 3)八进制,(0-7)蜂八进一
  6. 4)十六进制逢 (0-F)十六进一
  7. 例:
  8. a=10
  9. print(a.bit_length())#就能得到a这个变量的值的二进制长度

二,数据类型的转换

  1. 结论1x转换成y类型 y(x)
  2. 例子:print(bool(-1))#将布尔值转变成数据类型
  3. print(int(a))#将a转变成数据类型
  4. print(str(a)#将a转变成字符类型
  5. 结论2空的东西是False, 非空的东西是True,
  6. false: False: 0,'',[],{},set(),tuple(),None(真空)
  7. print(bool({}) #false

三,索引切片

1,在python和其他开发语言中我们的索引都是从零开始算的

  1. 反向 -7 -6-5 -4 -3-2 -1
  2. 正向 0 1 2 3 4 5 6
  3. s = "文 能 提 笔 安 天 下"
  4. print(s[3])
  5. print(s[7]) # index out of range 超过了索引的范围
  6. print(s[-8]) # 反向索引 - 反向
  1. 切片 从字符串中获取新字符串.例子:
  1. s = "银王喜欢和金王一起讨论污王"
  2. s1 = s[5]+s[6]+s[7]+s[8]
  3. print(s1)
  4. s[start: end] start切到end 但是不包含end. 顾头不顾尾
  5. s2 = s[5:9] # 从5-9 没有9
  6. print(s2)
  7. print(s[3:7]) # 欢和金王
  8. print(s[5:]) # 从5开始, 到末尾
  9. print(s[:5]) # 从头开始到5结束
  10. print(s[:]) # 从头到尾
  11. print(s[5:3]) # 默认的方向是从左到右.
  12. s[start: end: step] step如果是正数 从左到右。 如果是负数就是从右到左
  13. s = "金毛狮王谢逊紫衫龙王黛绮丝"
  14. print(s[3:1:-1]) # 可以从右往左切片
  15. print(s[1:8:3]) #从左往右切且各三个取一个值
  16. print(s[::-1])

总结:

  1. s[start: end: step]
  2. start: 起始位置
  3. end: 结束为止。取不到
  4. step: 步长。 每隔xx个取1个。 默认是1 如果step是-1 从右往左取值

四,字符串操作

  1. 1 upper() 全部转化成大写字母,loswer全部转换成小写,capitalize()首字母大写,title()每个单词首字母大写,swapcase()大写变小写小写变大写
  2. 2 strip() 去掉左右两段的空白(空格,\n, \t)
  3. 3 replace(old, new) 字符串替换
  4. 4 split() 切割. 得到的结果是一个列表.
  5. 5 startswith() 判断是否以xxx开头,endswith()判断以什么结尾
  6. 6 find() 查找。如果找到了。 返回索引。如果找不到返回-1
  7. 7 len() 内置函数,求字符串长度
  8. 8 count()计数计算字符或数字出现的次数
  9. 9 isdigit(),判断是否是数字

例子

  1. 2.有字符串s = "123a4b5c"
  1. 1)通过对s切⽚形成新的字符串s1,s1 = ""
  2. s="123a4b5c"
  3. s1=s[0:3]
  4. print(s1)
  5. 2)通过对s切⽚形成新的字符串s2,s2 = "a4b"
  6. s="123a4b5c"
  7. s2=input(s[3:6])
  8. print(s2)
  9. 3)通过对s切⽚形成新的字符串s3,s3 = ""
  10. s="123a4b5c"
  11. s3=s[0:8:2]
  12. print(s3)
  13. 4)通过对s切⽚形成字符串s4,s4 = "2ab"
  14. s="123a4b5c"
  15. s4=s[1:7:2]
  16. print(s4)
  17. 5)通过对s切⽚形成字符串s5,s5 = "c"
  18. s="123a4b5c"
  19. s5=s[-1]
  20. print(s5)
  21. 6)通过对s切⽚形成字符串s6,s6 = "ba2"
  22. s="123a4b5c"
  23. s6=s[-3:-8:-2]
  24. print(s6)
  1. 3.使⽤whilefor循环分别打印字符串s="asdfer"中每个元素。
  1. #(while循环)
  2. s="asdfer"
  3. index=0
  4. while index<len(s):
  5. print(s[index])
  6. index+=1
  7. #(for循环)
  8. # s="asdfer"
  9. # for i in s:
  10. # print(i)
  1. 4.使⽤for循环对s="asdfer"进⾏循环,但是每次打印的内容都是"asdfer"
  1. s="asdfer"
  2. for i in s:
  3. print(i,s)
  1. 5.使⽤for循环对s="abcdefg"进⾏循环,每次打印的内容是每个字符加上sb
  1. s="abcdefg"
  2. for i in s:
  3. print(i +"sb")
  1. 作业及默写
  1. 1.有变量name = "aleX leNb" 完成如下操作:
  2. 1)移除 name 变量对应的值两边的空格,并输出处理结果
  3. name = "alex leNb"
  4. print(name.strip())
  5. 2)移除name变量左边的"al"并输出处理结果
  6. name = "alex leNb"
  7. print(name.strip("al"))
  8. 3)移除name变量右⾯的"Nb",并输出处理结果
  9. name= "alex leNb"
  10. print(name.strip("Nb"))
  11. 4)移除name变量开头的a"与最后的"b",并输出处理结果
  12. name="alex leNb"
  13. print(name.strip("a"+"b"))
  14. 5)判断 name 变量是否以 "al" 开头,并输出结果
  15. name="alex leNb"
  16. n=name.startswith("al")
  17. if n == True:
  18. print("name is al start")
  19. else:
  20. print("is not al start")
  21. 6)判断name变量是否以"Nb"结尾,并输出结果
  22. name = "alex leNb"
  23. n=name.endswith("Nb")
  24. if n== True:
  25. print("是以Nb结尾")
  26. else:
  27. print("不是以Nb结尾")
  28. 7)将 name 变量对应的值中的 所有的"l" 替换为 "p",并输出结果
  29. name = "alex leNb"
  30. print(name.replace("l","p"))
  31. 8)将name变量对应的值中的第⼀个"l"替换成"p",并输出结果
  32. name="alex leNb"
  33. n=name.replace("al","ap")
  34. print(n)
  35. 9)将 name 变量对应的值根据 所有的"l" 分割,并输出结果。
  36. name="alex leNb"
  37. print(name.split("l"))
  38. 10)将name变量对应的值根据第⼀个"l"分割,并输出结果。
  39. print(name.replace("al","ap").split("p"))
  40. 11)将 name 变量对应的值变⼤写,并输出结果
  41. name="alex leNb"
  42. print(name.upper())
  43. 12)将 name 变量对应的值变⼩写,并输出结果
  44. name="alex leNb"
  45. print(name.lower())
  46. 13)将name变量对应的值⾸字⺟"a"⼤写,并输出结果
  47. name="alex leNb"
  48. print(name.capitalize())
  49. print(name.title())
  50. print(name.swapcase())
  51. 大写变小写,小写变大写
  52. name="alex leNb"
  53. print(name.upper())
  54. 14)判断name变量对应的值字⺟"l"出现⼏次,并输出结果
  55. name="alex leNb"
  56. print(name.count("l"))
  57. 15)如果判断name变量对应的值前四位"l"出现⼏次,并输出结果
  58. name="alex leNb"
  59. i=name[0:4]
  60. print(i.count("l"))
  61. 16)从name变量对应的值中找到"N"对应的索引(如果找不到则报错),并输出结果
  62. name="alex leNb"
  63. print(name.index("N"))
  64. 17)从name变量对应的值中找到"N"对应的索引(如果找不到则返回-1)输出结果
  65. name="alex leNb"
  66. print(name.find("N"))
  67. 18)从name变量对应的值中找到"X le"对应的索引,并输出结果
  68. name="alex leNb"
  69. print(name.find("x le"))
  70. 19)请输出 name 变量对应的值的第 2 个字符?
  71. name="alex leNb"
  72. print(name.find("l"))
  73. 20)请输出 name 变量对应的值的前 3 个字符?
  74. name = "alex leNb"
  75. print(name.find("a"),name.find("l"),name.find("e"))
  76. 21)请输出 name 变量对应的值的后 2 个字符?
  77. name="alex leNb"
  78. print(name.find("N"),name.find("b"))
  79. 22)请输出 name 变量对应的值中 "e" 所在索引位置?
  80. name="alex leNb"
  81. print(name.find("e"))
  82. 例如:asb, bsb,csb,...gsb。
  1. 6.使⽤for循环对s="321"进入循环,打印的内容依次是:"倒计时3秒""倒计时
    2秒""倒计时1秒""出发!"
  1. s=""
  2. for t in s:
  3. print("倒计时" + t + "s")
  4. else:
  5. print("出发")
  1. 7,实现⼀个整数加法计算器(两个数相加):
    如:content = input("请输⼊内容:") ⽤户输入:5+95+ 95 + 9,然后进
    行分割再进⾏计算。
  1. content=input("请输入内容")
  2. n=content.split("+")
  3. s=0
  4. for i in n:
  5. s += int(i)
  6. print(s)
  1. 8,升级题:实现⼀个整数加法计算器(多个数相加):
    如:content = input("请输⼊内容:") 用户户输入:5+9+6 +12+ 13,然后进行计算
  1. content=input("请输入内容")
  2. n=content.split("+")
  3. s=0
  4. for i in n:
  5. s += int(i)
  6. print(s)
  1. 分割再进⾏计算。
    9,计算⽤户输⼊的内容中有⼏个整数(以个位数为单位)。
    如:content = input("请输入内容:") # 如fhdal234slfh98769fjdla
  1. content=input("请输入内容")
  2. count=0
  3. for b in content:
  4. if b.isdigit()==1:
  5. count=count+1
  6. print(count)

五迭代

  1. for 变量 in 可迭代对象:
  2. 循环体(break,continue)
  3. else:

例子

  1. 写代码,完成下列需求:
  2. 用户可持续输出(用while循环),用户使用的情况:
  3. 输⼊A,则显示走大路回家,然后在让用户户进二步选择:
  4. 是选择公交车,还是步⾏?
  5. 选择公交车,显示10分钟到家,并退出整个程序。
  6. 选择步⾏,显示20分钟到家,并退出整个程序。
  7. 输⼊B,则显示⾛⼩路回家,并退出整个程序。
  8. 输⼊C,则显示绕道回家,然后在让用户进行步选择:
  9. 是选择游戏厅玩会,还是⽹吧?
  10. 选择游戏厅,则显示 ‘一个半⼩时到家,爸爸在家,拿棍等你。’并让其
  11. 重新输⼊AB,C选项。
  12. 选择⽹吧,则显示‘两个⼩时到家,妈妈已做好了战斗准备。’并让其重
  13. 新输⼊AB,C选项。
  1. while True:
  2. user=input("请输入一个字母A或B或C:")
  3. if user=="C":
  4. print("绕道回家")
  5. use1 = input("请问是游戏厅还是网吧玩会:")
  6. if use1 =="游戏厅":
  7. print("一个半小时到家,爸爸在家,拿棍等你。")
  8. elif use1 == "网吧":
  9. print("两个小时到家,妈妈已做好了战斗准备。")
  10. elif user=="A":
  11. print("走大路回家")
  12. use2=input("请问坐公交还是步行:")
  13. if use2 == "公交车" :
  14. print("10分钟到家")
  15. break
  16. elif use2 =="步行":
  17. print("20分钟到家")
  18. break
  19. else:
  20. print("走小路回家")
  21. break
  22. 写代码:计算 1 - 2 + 3 ... + 99 中除了88以外所有数的总和?
  23. i=1
  24. sumi=0
  25. j=1
  26. sumj=0
  27. while i<99 and j<99:
  28. sumi=sumi+i
  29. j = i + 1
  30. i += 2
  31. if j==88:
  32. continue
  33. sumj = sumj + j
  34. print(sumi-sumj)(升级题)判断⼀句话是否是回⽂. 回⽂: 正着念和反着念是⼀样的. 例如, 上海
  35. ⾃来⽔来⾃海上(升级题)
  36. while True:
  37. wen = input("请输入一句话:")
  38. if wen[0:] == wen[-1::-1] :
  39. print("这句话是回文")
  40. else:
  41. print("不是回文")
  1. 13. 输⼊一个字符串,要求判断在这个字符串中⼤写字⺟,小写字⺟,数字,
    其它字符共出现了多少次,并输出出来
  1. content=input("请输入内容")
  2. count=0
  3. cont1=0
  4. cont2=0
  5. cont3=0
  6. for a in content:
  7. if a.isdigit()==1:
  8. count=count+1
  9. # print(count)
  10. elif a.islower()==1:
  11. cont1 += 1
  12. # print(count1)
  13. elif a.isupper()==1:
  14. cont2 +=1
  15. #print(cont2)
  16. else:
  17. cont3 +=1
  18. print("数字",count,"个")
  19. print("小写字母",cont1,"个")
  20. print("大写字母",cont2,"个")
  21. print("其他字符", cont3,"个")

14给出百家姓. 然后用户输入一个人的名字. 判断这个姓是否是百家姓中的姓氏

  1. first_name=\
    '''赵钱孙李,周吴郑王。
    冯陈褚卫,蒋沈韩杨。
    朱秦尤许,何吕施张。
    孔曹严华,金魏陶姜。
    戚谢邹喻,柏水窦章。
    云苏潘葛,奚范彭郎。
    鲁韦昌马,苗凤花方。
    俞任袁柳,酆鲍史唐。
    费廉岑薛,雷贺倪汤。
    滕殷罗毕,郝邬安常。
    乐于时傅,皮卞齐康。
    伍余元卜,顾孟平黄。
    和穆萧尹,姚邵湛汪。
    祁毛禹狄,米贝明臧。
    计伏成戴,谈宋茅庞。
    熊纪舒屈,项祝董梁。
    杜阮蓝闵,席季麻强。
    贾路娄危,江童颜郭。
    梅盛林刁,钟徐邱骆。
    高夏蔡田,樊胡凌霍。
    虞万支柯,昝管卢莫。
    经房裘缪,干解应宗。
    丁宣贲邓,郁单杭洪。
    包诸左石,崔吉钮龚。
    程嵇邢滑,裴陆荣翁。
    荀羊於惠,甄曲家封。
    芮羿储靳,汲邴糜松。
    井段富巫,乌焦巴弓。
    牧隗山谷,车侯宓蓬。
    全郗班仰,秋仲伊宫。
    宁仇栾暴,甘钭厉戎。
    祖武符刘,景詹束龙。
    叶幸司韶,郜黎蓟薄。
    印宿白怀,蒲邰从鄂。
    索咸籍赖,卓蔺屠蒙。
    池乔阴鬱,胥能苍双。
    闻莘党翟,谭贡劳逄。
    姬申扶堵,冉宰郦雍。
    卻璩桑桂,濮牛寿通。
    边扈燕冀,郏浦尚农。
    温别庄晏,柴瞿阎充。
    慕连茹习,宦艾鱼容。
    向古易慎,戈廖庾终。
    暨居衡步,都耿满弘。
    匡国文寇,广禄阙东。
    欧殳沃利,蔚越夔隆。
    师巩厍聂,晁勾敖融。
    冷訾辛阚,那简饶空。
    曾毋沙乜,养鞠须丰。
    巢关蒯相,查后荆红。
    游竺权逯,盖益桓公。
    万俟司马,上官欧阳。
    夏侯诸葛,闻人东方。
    赫连皇甫,尉迟公羊。
    澹台公冶,宗政濮阳。
    淳于单于,太叔申屠。
    公孙仲孙,轩辕令狐。
    钟离宇文,长孙慕容。
    鲜于闾丘,司徒司空。
    丌官司寇,仉督子车。
    颛孙端木,巫马公西。
    漆雕乐正,壤驷公良。
    拓跋夹谷,宰父谷梁。
    晋楚闫法,汝鄢涂钦。
    段干百里,东郭南门。
    呼延归海,羊舌微生。
    岳帅缑亢,况郈有琴。
    梁丘左丘,东门西门。
    商牟佘佴,伯赏南宫。
    墨哈谯笪,年爱阳佟。
    第五言福,百家姓终。'''
  1. #for循环
    name = input("请输入用户名")
  2. for i in first_name :
  3. if i == name[0] :
  4. break
  5. print(i,"在百家姓中")
  6. else:
  7. print("不在百家姓中")
  1. #while循环
    while True:
  2. name = input("请输入用户名")
  3. if name[0] in first_name :
  4. print("在百家姓中")
  5. continue
  6. else:
  7. print("不在百家姓中") 
  1. 六,格式化输出
    制作趣味模板程序需求:等待⽤户输⼊名字、地点、爱好,根据⽤户的名
    字和爱好进⾏任意现实 如:敬爱可亲的xxx,最喜欢在xxx地⽅⼲xxx
  1. aihao="和蔼可亲的%s,最喜欢在%s,干%s" %("刘传盛","小树林","谈恋爱")
  2. love="{}的演的电影,是{},{}很喜欢" .format("周星驰","幽默的","大家")
  3. AV="{0},{1},{2},{3},都是{4},受广大{5}喜欢" .format("苍井空","泷泽萝拉","小泽玛丽牙","波多野结衣","日本明星","宅男")
  4. print(AV)
  5. print(love)
  6. print(aihao)
  1.  

python字符串用法的更多相关文章

  1. Python 字符串用法总结

    一.将某个对象转换为字符串,有str()和repr()两种方法 区别:repr() 转化为供解释器读取的形式str() 转化为适于人阅读的形式 a = 123456 print('repr输出:', ...

  2. python字符串-内置方法用法分析

    1.字母大小写相关(中文无效) 1.1 S.upper() -> string 返回一个字母全部大写的副本

  3. Python 字符串

    Python访问字符串中的值 Python不支持单字符类型,单字符也在Python也是作为一个字符串使用. Python访问子字符串,可以使用方括号来截取字符串,如下实例: #!/usr/bin/py ...

  4. Python 字符串处理大全.

    Python 字符串 字符串是Pyhton中常用的数据类型,我们可以使用引号来创建字符串 . 创建字符串很简单 , 就不说了 . Python 访问字符串中的值 鬼叔本着简洁 使用的设计目的 , 在设 ...

  5. [转] 强大的python字符串解析

    1.python字符串通常有单引号('...').双引号("...").三引号("""...""")或('''...'' ...

  6. python 字符串探讨

    本文内容基于python3 几乎所有有用的程序都会涉及到某些文本处理,不管是解析数据还是产生输出.字符串的学习是重点中的重点,这一节将重点关注文本的操作处理,比如提取字符串,搜索,替换以及解析等.大部 ...

  7. Python高级用法总结

    Python很棒,它有很多高级用法值得细细思索,学习使用.本文将根据日常使用,总结介绍Python的一组高级特性,包括:列表推导式.迭代器和生成器.装饰器. 列表推导(list comprehensi ...

  8. python argparse用法总结

    转:python argparse用法总结 1. argparse介绍 argparse是python的一个命令行解析包,非常适合用来编写可读性非常好的程序. 2. 基本用法 prog.py是我在li ...

  9. python字符串处理以及字符串格式化

    一.python字符串处理 目录: 1.算长度(len),某个元素出现的次数(count) 2.切片   [ ],repr:把不可见字符显示出来 3.查找 #find,rfind从右边查找 4.字符串 ...

随机推荐

  1. Java Eclipse和MyEclipse快捷键

    摘自:http://www.cnblogs.com/lsy131479/p/8487379.html  首先: 常用快捷键 alt+/ - -  万能快捷键 Ctrl+1 - - 快速修复 Eclip ...

  2. 关于er模型中的identifying relationship or non-identifying relationship

    最近,主要负责项目管理和领域模型设计方面的工作,昨天在将UML类图转换为ER模型的时候,发现有identifying relationship or non-identifying relations ...

  3. 解决在ubuntu中安装或升级时出现“11:资源暂时不可用”错误

    解决在ubuntu中安装或升级时出现“11:资源暂时不可用”错误 解决在ubuntu中安装或升级时出现“11:资源暂时不可用”错误. 下图为具体情况: 出现问题: termial下在执行sudo ap ...

  4. linux command wrap

    $ cat tmux-attach ] ; then tmux ls else tmux attach -t $ fi $ cat /usr/bin/cscope-go.sh #!/bin/bash ...

  5. shell实现每天0点备份mysql数据库

    就两个文件, 本人学识尚浅,不解释,怕大佬喷. back.sh #/bin/bash MYSQLUSER=root MYSQLPWD=lizhenghua DATABASES=zskdb MYSQLD ...

  6. Eclipse中已安装的插件如何卸载

    最近在Eclipse中安装了一个插件,导致Eclipse使用的时候有些问题,就找了资料,原来Eclipse中的插件也是可以卸载的. 方法是点击菜单“Help”,“Install New Softwar ...

  7. vue2.0之echarts使用

    1.首先下载echart依赖 npm install echarts --save备注:npm 安装报错时使用cnpm 2.全局注册 在main.js里引入echart并在vue中注册echart / ...

  8. Linux 用 root 用户都无法删除的文件如何删除

    要查看隐藏文件用 ls -a 看文件有没有被锁定(i属性) [root@linux ~]# lsattr YourFile ---i---------- YourFile 去除i属性再删除 [root ...

  9. Magnum Kubernetes源码分析(二)

    Kubernetes Master Stack kubernetes master的stack的resources主要分为三个部分. master wait handle wait handle主要用 ...

  10. 标签无效 "/zabbix_export/date": "YYYY-MM-DDThh:mm:ssZ" 预计。

    Centos7.5 使用导入percona模板的时候报错 百度给的解决方案是 将zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1. ...