循环和字符串使用

格式化输出

%02d 表示该整型数占空两位,不够高位补0 0:补0 , 2:占空2位

%-05d 左对齐

数23: %05d >>00023 %-05d >>>23 占空5格,数字放高位,后面不会再补0

%.2f 表示保留两位小数

伪三目运算

将if else 语句强制性写在一行的一个简单运算

result1 if 判断条件 else result2

result可以是一个语句,也可以是一个值

判断真假科普

a=    # 假:0 False None "" [] {} () 真:" ",非0number..... 

if a:

print("真")

else:

print("假")
print(6 and 8)
>>8
print(6 or 8)
>>6

循环语句

while循环之else

while 判断条件:

循环语句

else:

循环语句

while循环正常结束时,else语句正常执行;非正常结束时,else语句不执行,例如break跳出循环属非正常

注: while 条件:语句 当循环语句只有一条时,可以写在一行

for循环之else

同while

使用环境:

没有给定循环次数时,使用while循环

给定循环具体次数,用for循环方便

 

字符串拼接

1.使用 "," 拼接,会在逗号处产生一个空格

2.使用 "+"拼接,要求数据类型必须相同

3.格式化输出 %

4.使用函数拼接 " ".join(seq) 拼接,要求序列中元素必须为字符串

例: "*".join(list1) 以" * "连接.

字符串重复输出:

str1*n 将str1重复输出n次

获取字符串中的字符

str1[index] 通过索引值(下标)进行获取.索引从0开始

取值范围[0,len(str1))

索引为负数,则从右往左取

字符串截取

str1[start : end : step]

start: 默认0,不给该参数,则从下标0开始

end : 默认len(str1),不给参数则取到末尾

取值范围[start,end)

字符串反转: str1[: : -1]

注意: str对象不支持项赋值 ( str[0]="x" :不支持该操作)

判断包含指定字符

str1 in str2 判断str1是否是str2的字符串

字符串常用函数

内置函数:

eval(str1) : 将字符串转为有效的表达式并且返回计算的结果 具体就是去掉引号

len(str1) 返回字符串长度

字符串函数: (操作完后返回的是一个新的字符串)

str1.lower() 将字符串中所有大写字母转为小写字母

str1.upper() 将字符串中所有小写字母转为大写字母

str1.swapcase() 将字符串中大写变小写,小写变大写

str1.capitalize() 将字符串中的第一个字符转为大写,其他都小写

str1.title() 将字符串中每个单词首字母大写,其他都小写

 

str1.center(50," * ") 返回一个50长度的字符串,str1居中,两边补*

str1.ljust(50," * ") 居左 str1.rjust(50," * ") 居右

str1.zfill(width) 返回一个width长度的字符串 ,str1右对齐,前面补0

 

str1.count(子串,start,end) 统计 子串 在指定范围内出现的次数,若不指定范围,则统计整个字符串

str1.find(子串,start,end) 在str1中查找 字串,若存在则返回子串第一个字母第一次出现时所在下标,若找不到,则返回-1

str1.rfind() 从右往左查找

str1.index() 作用同str1.find,若找不到,则报错

 

str1.lstrip(子串) 去掉左边指定的字符,若不指定,则默认去掉空白符[\n,\r,\t," "]

str1.rstrip(子串) 去掉右边指定的字符,若不指定,则默认去掉空白符[\n,\r,\t," "]

str1.strip(子串) 去掉两边指定的字符,若不指定,则默认去掉空白符[\n,\r,\t," "]

字符串的分割替换

str1.split(子str,maxsplit=3) 参数可以不写maxslipt 以指定的子字符串str对str1进行切片,若不指定字符串,则默认以空白符进行切. maxsplit=3:最大切割次数;若不指定,则全部切片. 返回结果以列表list形式显示

str1.splitlines(keepends=False) 按行切片,keepends=true:保留换行符;False默认,不保留

str1.join(seq) 以指定字符串作为分隔符,将序列中的所有元素合并为一个新字符串 (序列中的元素必须为字符串) 返回一个新的字符串

str1.replace(子串,新串,count) 将str1中子串替换为指定的新字符串,count 为替换个数,替换前几个;若不指定,则全部替换

str.maketrans(oldstr,newstr) 映射替换 translate()

str1.startswith("str2",start,end) 在给定范围内,判断字符串是否以给定的字符串开头,若不指定范围,则默认整个字符串

str1.endswith("str2",start,end) 在给定范围内,判断字符串是否以给定的字符串结尾,若不指定范围,则默认整个字符串

str1.encode(encoding="utf-8",errors="scrict") 对字符串编码,若不指定encoding则默认utf-8

str1.decode(encoding="utf-8") 对字符进行解码,若不指定编码格式,默认utf-8,例如: "hello".encode("utf-8").decode() 注意:解码时的编码格式要与编码时一致, errors = ignore 的时候,忽略错误

判断是否为字母或数字

str1.isalpha() 判断字符串至少有一个字符,且所有的字符都是字母,若真返回True,否返回False [不考虑中文]

str1.isalnum() 判断字符串至少有一个字符,若所有字符都是字母或数字,真则返回True,否返回False [不考虑中文]

判断大小写

str1.isupper() 若字符串中包含至少一个字母的字符,若这些字母都是大写,则返回True,否False

str1.islower() 若字符串中包含至少一个字母的字符,并且这所有的字母都是小写,则返回True,否False

判断是否包含特殊字符

str1.istitle() 如果一个字符串是标题化的,则返回True,否则返回False (标题化: 每个首字母大写 例:"Hello Word")

str1.isdigit() 只识别阿拉伯数字,罗马数字

str1若为: Unicode数字("1"), byte数字(单字节)(b"1"), 全角数字(双字节)("1"), 罗马数字 返回True; 若为: 汉字,字母等其他,返回False; 若为无: error

str.isnumeric() 识别阿拉伯数字,汉字数字(包括大小写:一,壹)

若字符串中只包含数字,则返回True,否返回False; str1若为: Unicode数字, 全角数字(双字节), 罗马数字, 汉字数字 返回True; 若为: byte数字(单字节),error; 若为无: False

str1.isdecimal() 只识别阿拉伯数字

判断str1是否只包含十进制字符,是True,否False; str1若为: Unicode数字,全角数字(双字节)返回True; 若为 罗马数字,汉字数字 返回False; 若为 byte数字 :error

str.isspace() 若果字符串只包含空格 ,则返回True(" ", \t , \n, \r ),否则返回False

ASCLL码转换

ord(str1) 获取字符的ASCLL值 例:A-->65 "你"-->20320

chr(68) 将编码转换成对应的字符 例: 68-->D 20190-->"仞"

 

字符串的大小比较

实际上是比较字符串的ASCII码, 比较时先比较第一个字符,若相等则比较第二个字符,以此类推.

例:"a">"b" >>False "a"<"b" >>True

 

猜你喜欢

转载自www.cnblogs.com/Deaseyy/p/10859696.html