刷题收获
1)找出字符串中16进制的字符
for i in Str:
if((i>"0" and i<="9") or (i>="a" and i<="f")):
list.append(i)
2)index()或find()函数都能用来查找字符串中特定字符的下标。在列表中查找特定元素只能用index()函数,不能用find()
Str=input() #Str="+-P-xf4+-1!#"
# index=Str.index("P")
index=Str.find("P")
print(index)
2
Str=list(input())
# index=Str.index("P")
index=Str.find("P")
print(index)
编译器会报错,列表没有find()这一用法
AttributeError: 'list' object has no attribute 'find'
用index()函数
Str=list(input())
index=Str.index("P")
#index=Str.find("P")
print(index)
结果不报错
2
*3)计算转为10进制下的16进制数
注意!!list列表里面元素是字符。举个例子,若直接用list[0]pow(16,3)(list[0]=‘15’),结果会输出16的三次方个15,我检查好久才排了错。
因此要转字符串“15”为int型,才能计算
for i in range(len(list)):
sum+=int(list[i])*pow(16,len(list)-i-1)
4)在for i in Str[a:b] 中,i是字符,不是数字
for i in Str[:index]:
if ("-"==i): #注意,此处i是字符,不能做下标
5)判断数字位数方法
方法一:先转为字符串,再用len(),这个比较简洁
N=int(input())
str_N=str(N)
s=len(str_N)
方法二:
c=0
a=int(raw_input("the number you want type in:"))
while a!=0:
a=a/10
c +=1
print c
6)ord()函数可以得到单个字符的ASKII码,chr()函数可以转为字符型
#第3章-13 字符串替换
for i in Str:
if(i>='A' and i<='Z'):
c.append(chr(155-ord(i)))
7)
Str = Str[:-1] #删除字符串最后一个字符
8)判断大小写方法:
①islower(),isupper()可判断字符串或单个字符是否大小写
②
if 97<=ord(str)<=122: #判断是否为小写字母
upper_str=chr(ord(str)-32) #小写转为大写
if 65 <= ord(str) <= 90: #是否为大写字母
lower_str = ord(num)+32 #转为小写字母
Str='AGFDGDF'
print(Str.isupper()) #Ture
print(Str[0].isupper()) #True
lower()只能将字符串改为小写,不能是单个字符
9)实现输入以空格分割,并放入列表
s=list(input().split())
10)统计一行文本的单词个数,下面的做法就是利用输入的字符串用空格分隔,比较简洁
cnt=0
for i in input().split():
cnt=cnt+1
print(cnt)
11)set()集合作用就是去掉重复元素,可以直接用于输入时
str = list(set(input()))
12)调用list集合中的sort()函数,对每一个元素对象进行升序排列;
list.sort()
13)join()函数作用就是连接字符串、元组、集合、元素序列
14)倒序输出数字
a = input()
print(int(a[::-1]))
15)统计素数时,要考虑1和2这两个特殊情况;在检查某数是否为素数时,for循环(a,b)中的b应为该数除以2再加1
16)把s2大写小写和s1中相同的字符用’’"代替,即删除
s1 = input().strip()
s2 = input().strip()
s1 = s1.replace(s2.upper(), '').replace(s2.lower(), '')
print("result: {}".format(s1))
#输入
Bee
E
#输出
result: B