Python基础刷题录-1

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)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值