字符串是以单引号或双引号括起来的任意文本
# string(字符串).py 'abc' "def"字符串不可变,变量可变
创建字符串
str1 = "sunck is good man!" str2 = "sunck is nice man!" str3 = "sunck is handsome man!"字符串运算 字符串连接
str = "sunck is a" str = "good man" str8 = str6 + str7 print("str6 =", str6) print("str7 =", str7) print("str8 = ", str8)输出重复字符串
str9 = "good" str10 = str9 * 3 print("str10 =", str10) # 访问字符串中的某一个字符串 # 通过索引下标查找,索引从0开始 # 字符串名[下标] str11 = "sunck is good man!" print(str11[1]) # str11[1] = "a" # 字符串不可变 # print("str11 = ", str11)截取字符串中的一部分
str13 = "sunck is a good man!" # 从给定下标处到给定下标之前 str15 = str13[6:15] # 从头截取到给定下标之前 str15 = str13[:5] print("str15 =", str15) # 从给定下标处开始截取到结尾 str17 = str13[16:] print("str17 =", str17) str18 = "sunck is good man!" print("good" in str18) print("good1" not in str18)格式化输出
print("s is a good man!") num = 10 str19 = "s is a nice man!" f = 10.1234 print("num =", num, "str19 = ", str19) # %d %s %f 占位符 # 精确到小数点后三位,会四舍五入 print("num = %d, str19 = %s, f = %.3f" % (num, str19, f))将一些字符转换成有特殊含义的字符
# /n print("num = %d\nstr19 = %s\nf = %.3f" % (num, str19, f)) # \\ # 显示\后面的内容 print("sunck \\ is") # 转译单引号\' 转义双引号\" # 需要的效果:tom is a 'good' man print('tom is a \'good\' man') print("tom is a 'good' man") print("tom is a \"good\" man") # 如果字符串内有很多换行,用\n写在一行不好阅读 print("good \n nice \n handsome") print(""" good nice handsome """) # \t 制表符(输出四个默认空格) print("suck \t good") # 如果字符串中有好多字符都需要转义,就需要加入好的斜杠\,为了简化,python允许用r表示内部的字符串默认不转义 # 需要效果\\\t\\ print(r"\\\t\\") print(r"C:\Users\xlg\Desktop\Python-1704\day03") print("C:\\Users\\xlg\\Desktop\\Python-1704\\day03")\ """ windows路径 C:\Users\xlg\Desktop\Python-1704\day03 linux路径 /root/user/sunck/Desktop """eval(str) 功能: 将字符串str当成有效的表达式来求值并返回计算结果
num1 = eval("123") print("num1") print(type(num1)) print(eval("+123")) print(eval("-123")) print(eval("12+3")) print(eval("12-3")) # 注意int不同,此处不报错 # print(eval("12a3")) 报错 # print(eval("a123")) 报错len(str) 返回字符串的长度
print(len("sunck is a good man!")) print(lover(ster20))lower(s)转换字符串中大写字母为小写字母 相当于新生成一个字符串,原字符串依然遵循不可改变的原则
str20 = "Sunck Is a good man!" str21 = str20.lower() print(str21) print("str20 = %s" % str20)upper()转换字符串中小写字母为大写字母
print("Sunck is a good Man!".upper()) str21 = Sunck is a good Man! print(str21.upper())swapcase() 转换字符串中小写字母为大写字母,大写字母为小写字母
str22 = "sunck is a GOOD man!" print(str22.swapcase())capitalize() 首字母大写,其他小写
str23 = "sunck is a GOOD man!" print(str23.capitalize())title() 每个单词的首字母大写
str24 = "sunck is a GOOD man!" print(str24.title())character char 字符 center(width, fillchar) (一个字符)居中 返回一个指定宽度的居中字符串,fillchar为填充的字符串,默认空格填充
str25 = "kaige is a GOOD man!" print(str25.center(40, "*"))ljust(width[, fillchar]) 左对齐 返回一个指定宽度的左对齐字符串,fillchar为填充的字符串,默认空格填充
str26 = "sunck a GOOD man!" print(str26.ljust(40, "%"))rjust(width[, fillchar]) 右对齐 返回一个指定宽度的右对齐字符串,fillchar为填充的字符串,默认空格填充
str27 = "sunck a GOOD man!" print(str27.rjust(40, "%"))zfill(width) 返回一个长度为width的字符串,原字符串右对齐,前面补0
str28 = "sunck a GOOD man!" print(str28.zfill(40))count(sub[, start][, end]) 返回字符串中sub出现的次数,可以指定一个范围,默认从头到尾
str29 = "kaige is a very very GOOD man!" print(str29.count("very", 15, len(str29)))find(str[, start][, end]) 从左向右检测str字符串是否包含在字符串中,可以指定范围,默认从头到尾,得到第一次出现的开始下标,没有返回-1
str30 = "kaige is a very very GOOD man!" print(str30.find("very")) # print(str30.find("nice")) print(str30.find("very", 15, len(str30)))rfind(str[, start][, end])
str30 = "kaige is a very very GOOD man!" print(str30.rfind("very")) # print(str30.rfind("nice")) print(str30.rfind("very", 15, len(str30)))index(str, start=0, end=len(str)) 跟find()一样,只不过如果str不存在的时候会报一个异常
str31 = "kaige is a very very good man!" print(str31.index("very"))rindex(str, start=0, end=len(str)) 跟rfind()一样,只不过如果str不存在的时候会报一个异常
str32 = "kaige is a very very good man!" print(str32.index("very"))lstrip()截掉左侧指定的字符,默认为空格
str33 = "###############kaige is a good man" print(str33.lstrip("#"))rstrip()截掉右侧指定的字符,默认为空格
str34 = "###############kaige is a good man*************" print(str34.rstrip("*"))strip() 前后都去掉,中间的去不掉
str35 = "***************kaige** is a good man*************" print(str35.strip("*"))ASCLL码转换
str36 = "a" print(ord(str36)) str37 = chr(65) print(str37)字符串可以比较大小
print("a" == "a")while语句 格式: while 表达式: (一个tab)语句 逻辑: 当程序执行到while语句时,首先计算”表达式“的值,如果表达式的值为假,那么结束整个while语句。 如果”表达式“的值为真,则执行“语句”,执行完“语句”再去计算“表达式”的值。 如果”表达式“的值为假,那么结束整个while语句, 如果“表达式”的值还为真,则执行“语句”,执行完“语句”再去计算“表达式”的值 如此循环往复,直到表达式的值为假才停止。
num = 1 while num <= 5: print(num) num += 1计算1+2+,,,,+100
sum = 0 num = 1 while num<= 100: sum += num num += 1 print("sum = %d" % (sum)) str = "zhangkaibo is a good man" index = 0 while index < len(str): print("str[%d] = %s" % (index, str[index])) index += 1老师的答案
num = 100 while num <= 999: a = num % 10 b = num // 10 % 10 c = num // 100 if num == a**3 + b**3 + c**3: print(num) num += 1有坑
num = int(input()) if num == 2: print("yes") index = 2 while index <= num - 1: if num % index == 0: print("no") index += 1 if index == num: print("yes")sf sdf gwe wagr 4 sdfsdg sg esrhg 3 注意: 去掉字符串前后的空格 单词中间有多个空格 循环时超出字符串长度
str = input() str1 = str.strip() index = 0 count = 0 while index < len(str1): while str1[index] != " ": index += 1 if index == len(str1): break # 结束这个循环 count += 1 print(count) if index == len(str1): break while str1[index] == " ": index += 1 print(count)adlsfjei45sdjg8 sdfsadf6afs87
a->数字-> 二进制
str = input() index = 0 sum = 0 while index < len(str): if str[index] >= "0" and str[index] <= "9": sum += int(str[index]) index += 1 print("sum = %d" % (sum))字符串比较大小 从第一个字符串开始比较,谁的ASCII的值大谁就大,如果相等会比较下一个字符的ASCII值大小,那么谁的值大谁就大\
print("ms" == "ms") # 默认末尾都有 |0