python刷题—第3周


刷题收获

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值