Python基础刷题录
2020-08-27
1.实现输出1 - 2 + 3 - 4 + 5 - 6 … + 99的和
方法一:可以用while循环实现
total=0
i=0
while i<100:
if i%2==1:
total+=i
else:
total-=i
i+=1
print(total)
方法二:可以用for循环实现
total=0
for i in range(100):
if i%2==1:
total+=i
else:
total -= i
print(total)
2.改变语句的大小写,使其符合英语书写规范
主要可以用capitalize方法对字符串进行操作,如操作“nice To meet you.how Are you”这种语句。
a="nice To meet you.how Are you"
data=a.split(".")
b=""
for str in data:
b=b+str.capitalize()+"."
c=b[:-1]
print(a)
print(b)
print(c)
注意其中可允许从最后一个字符串往前切片的方法。如果进一步需要对","等多个字符串均进行大小写转换,可将转换过程封成一个入参为分隔符和被分隔字符串的方法。被“,”和“.”调用两次就行。
3.利用下划线将列表的每一个元素拼接成字符串,li = [‘alex’, ‘eric’, ‘rain’]
方法一:for或者while循环对字符串用+拼接
li=['alex', 'eric', 'rain']
strtotal=""
for str in li:
strtotal=strtotal+"_"+str
strtotal=strtotal[1:]
print(strtotal)
方法二:join方法实现连接
li=['alex', 'eric', 'rain']
strtotal="_".join(li)
print(strtotal)
java的join等方法使用能极大简化代码
4.在列表中插入元素或列表
将extra=[“cc”,“dd”,30]加入到li=[“aa”,2,20,“bb”]中
li=["aa",2,20,"bb"]
extra=["cc","dd",30]
li.append(extra)
print(li)
li.extend(extra)
print(li)
li.insert(2,extra)
print(li)
结果为
['aa', 2, 20, 'bb', ['cc', 'dd', 30]]
['aa', 2, 20, 'bb', ['cc', 'dd', 30], 'cc', 'dd', 30]
['aa', 2, ['cc', 'dd', 30], 20, 'bb', ['cc', 'dd', 30], 'cc', 'dd', 30]
可以看到有三种方法实现添加。其中
append方法直接把extra当成一个对象塞到list的后面,
extra把extra中的元素一个一个续接到list后面,
insert把extra当成一个对象插在指定的位置。
这里提一个问题,如何能将extra的每一个元素在list指定位置一个一个插入?
5.在列表中删除元素
# 一
list=["aa",2,20,"bb"]
del list[2]
print(list)
# 二
list=["aa",2,20,"bb"]
a=list.pop(2)
print(a)
print(list)
# 三
list=["aa",2,20,"bb"]
a=list.remove(2)
print(a)
print(list)
运算结果
['aa', 2, 'bb']
20
['aa', 2, 'bb']
None
['aa', 20, 'bb']
从上面可以看出,有三种方法删除元素,
del方法直接删除指定索引的元素。如果想删除多个元素则可写成 del list[2:3] 等样式;
pop方法是踢出指定索引的元素,可以用变量单独存储,如果不指定就是踢出最后的元素。切出多个元素的写法同del;
不同的是,remove方法是移除指定元素名字的第一个参数,而不是指定索引。如果想用remove指定元素名字的所有元素,配合for循环使用。
6.一个整数,它加上100后是一个完全平方数,再加上168后又是一个完全平方数,求该数。
i=0
while (i+100)**0.5!=int((i+100)**0.5) or (i+268)**0.5!=int((i+268)**0.5):
i+=1
pass
print(i)
结果
21
也可以用for循环在对应区间寻找全部的数.例如for i in range(10000)