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因数,直接不让因数取到整数
&