python 零散知识点、易错点归纳

1、range/input/reverse/列表字符串翻转/可变数据类型/运算符/去重/完全数

'''

range(5)的取值范围从0开始,到4结束 print(i)打印i,自动加上回车,print(i,end='')的打印i,不换行,以一个空格结尾


### 列表中的注意点 √√√
注意1:
lst.reverse( )不能直接print(lst.reverse( ))
要print(lst)
注意2:
input0=int(input()) 输入一个整数
input1=input().split(" ") 返回的是存放分割后的各个字符串在列表中  输入若干个数据用空格分隔开
不可以input2=int(input().split(" "))
因为input1中包括若干个字符串,正确使用为input3=int(input().split(" ")[i])

### python中的数据类型
1、python中的不可变数据类型(创建之后就不可以修改,修改(修改值、添加、删除)的话就为创建
一个新的对象):int/float/bool/str/tuple
2、python中的可变数据类型:list/dict(字典)/集合

### python运算符:
python中逻辑运算符:and or not      C++中逻辑运算符为:&& ||
python中位运算符(自动把整数转换成二进制进行计算):&   |    <<左移   >>右移一位   ~取反

### 字典
dict中的键不能是可变数据类型

### 计算列表中每个元素的个数
lst=[1,2,1,4,1,5,6]
print(lst.count(1))
for i in lst:
    print(lst.count(i),end=" ") # 3 1 3 1 3 1 1(有重复元素个数)
dic=dict()
#去重
for j in lst:
    if j not in dic.keys():
        dic[j]=1;
    else:
        dic[j]+=1;
print(dic)   # 字典表示
print(dic.values()) # 另一种表示dict_values([3, 1, 1, 1, 1])

### 输出翻转之后的列表元素
lst=[1,2,1,4,1,5,6]
lst.reverse()   
print(lst)  # [6, 5, 1, 4, 1, 2, 1] 原序列lst发生改变为翻转之后的序列了
for i in lst:
    print(i,end=" ")  # 6 5 1 4 1 2 1

### reversed(my_lst)翻转方法,不是列表的翻转方法
my_lst=[1,2,1,4,1,5,6]
reversed_lst=reversed(my_lst)
print(my_lst)  # 原序列my_list没有发生改变
for item in reversed_lst:
    print(item,end=" ")   #6 5 1 4 1 2 1 

    
### 翻转字符串类型
注意:字符串在python中属于不可变的,所以无法直接对字符串使用reverse翻转函数。
    需要先将字符串转换为列表(用list()),然后调用reverse函数进行翻转,最后再将列表转换回字符串(用join())。
my_string="hello"
my_list=list(my_string)
my_list.reverse()
reversed_string=''.join(my_list)
print(reversed_string) #olleh


### 求正整数2和100之间的完全数,需用函数。
完全数:因子(除去这个数)之和等于它本身的自然数,如 6=1+2+3。
因子:假如整数n除以m,结果是无余数的整数,那么我们称m就是n的因子,
如6的因子是1,2,3,6
方法1:
for i in range(2,101):  ##i整数
    sum=0
    for j in range(1,i+1):   ##j因数
        if (i%j==0)&(i!=j):   ##注意:要每个条件要用()包裹起来 python中用&,C++中用&&
            sum+=j
    if sum==i:
        print(i,end=" ")
方法2:
for i in range(2,101):  ##i整数
    sum=0
    for j in range(1,i):   ##j因数,直接不让因数取到整数
    &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值