python基础总结(自测)

c = 1.1 ** 2
b = "%.3f" % c # b为str!!后面的f也是,格式化输出要用%s!
d = 10 / 3 # 除法有小数!d=3.333
e = 60 * 3.35 + 20 * 4.5 #291.0 , float型
f = '"+++"%5.1f' % c # 此处:'空空1.2' ,宽度共五位
print("   直接打印 c = 1.1 ** 2  :c=",c,',c的类型是',type(c),"")
print('float默认六位 %s :c=%f'% ('  c = % f  ',c),'\n\n(字符串)b=%s'% b +'\nf=%s'% f+'\nd=',"%.f,除法有小数!"% d)
print(type(b),type(type(b)),) # 仅str类型能拼接!

#####
'print(10 // 3) # 保留整数:3'
'print(10 % 3) # 该啥就啥:1'
QuYuShu = 10.9 % 3                         # ↓看下这句双重格式化输出
print('\n%g   %d'% (QuYuShu,int(QuYuShu))) # int是截取,四舍五入:round
print('四舍五入:','int(3.5)=',int(3.5),',round(3.3)=',round(3.3),',round(3.5)=',round(3.5),'\ntype(round(3.6))=',type(round(3.6)),'\n')

#####
name = input("这个地方的功能是,省去print而直接打印提示语句。你吃饭了吗?")
print("%s"% name)
numm =input("可以连续再问第二句,继续输入吧。")
print(numm , "%s"% type(numm))
(1)——————————————————输入输出/变量——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
x = y = 1
z = "生出大狂蜂"
print('内存地址相同! id= %d'% id(x)) if id(x)==id(y) else print('diff')
print((z + '$')*2)
print('·-1为尾    >>> ',z[0],z[-1],z[-2])
print('·止于3前   >>> ',z[0:3])
print('·倒取     >>> ',z[2::-1])
print('·切片中取不到尾>>>',z[2:0:-1])
print('·全取     >>> ',z[0:])
print('·all倒取  >>> ',z[-1::-1])
(2)————————————————————str切片—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
str_a = "无人扶我凌云志,我自踏雪至山巅A"
print(str_a[8] +str_a[14])
print('(哈哈)'.join([str_a[8:10],str_a[12:-1],'!']))
print(str_a.capitalize()) # 后面变小写
print(str_a.center(20,'_')) # fill字符只能长度为1
str_b = "A'a'"
str_c = "Yang li Rui" # 4+2+3(+1+1)=11
print(str_b.swapcase()) #
print(str_c.title())
print(str_c.startswith('ang',1,4)) # end为3就错了
print(str_c.endswith(' Rui')) #区分大小写
print('ui出现的索引位置: %d '% str_c.find('ui')) # 未找到:-1
print('i出现次数: %d 次'% str_c.count('i'))
print(str_c.replace('i','1',2),'\n')
(3)————————————————————str操作1————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
def remove_mark(bly0:str,char:str)->str:
    """去除str中指定字符"""
    if type(bly0) is str:
        br = ''                    #错因:定义了两个i!!!
        for i in bly0:
            br += i.strip(char)
        return br
    else:
        return '不是字符串'
bly = '--Wuwa-Star--t-!'
ya = remove_mark(bly,'-')
print(ya)
@@@@@字符串属于不可修改类型,字符串的方法不能修改列表内字符串的内容,只会返回处理好的字符串。
(4)————————————————————str操作2———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
print('一、切片')
lis_wuwa = ['漂泊者','今汐','长离',['秧秧','炽霞','白芷',['黑咩之手','白咩之手']]]
lis_num = [10,666,30,40]
lis_num2 = [1,2,10,4,5]
lis_str =['鸣潮','启动','!']
print(lis_wuwa[3][3][0],'====',len(lis_wuwa),'====',lis_wuwa.index('今汐'))
print(lis_num.sort(key=abs),lis_num)
print(lis_num.sort(reverse=True),'====',lis_num)
print(lis_num2.reverse(),'====',lis_num2,'\n二、转换str') #倒置,不排序
# #####转换str
str_turn = ''.join(lis_str) # lis -> str,若元素不为str则失败
print('str :',str_turn)
lis = list(str_turn) # separate,转list
print('lis :',lis)
str_lis = '_'.join(lis[:2])+','+'_'.join(lis[2:])

print('str2:',str_lis) #切片规则相同
str3 = '200+300++'
lis2 = str3.split('+') # lis2: ['200', '300', '', ''] 后面是两个空:(''),逗号隔开也!
print('lis2:',lis2,'\n三、插入')
#转集合:
set1 = set(lis)
set2 = set(lis2) # 效果:去重
print(set1,set2) # 变为无序集合
#####
lis.insert(2,',')
print('lis\':',lis)
lis.clear()
print('lis\':',lis)
del lis2[2:]
print('lis2:',lis2)
lis2[1] = '400'
lis2.append('600')
print('lis2:',lis2)
lis2[1:1] = "哈" # 将区间a——b-1的元素sep.替换
print('lis2:',lis2,'\n四、嵌套')
#####
lis = ['接着奏乐','接着舞','dengdengdeng',['我打了一辈子','仗']]
lis[2] = lis[2].upper() # str:不可修改类型!
print(lis)
lis[3][1] = lis[3][1].replace('仗',"飞机") # str:不可修改类型!
print(lis,'\n五、逻辑')
#####
lis = [1,2,3,'4']
print('%s %s\n六、拷贝'%(4 in lis,'3' not in lis))
#############浅拷贝
lis = [1,2,3,[1,2,3]]
lis2 = lis
lis3 = lis.copy() # 与lis2不同,lis3在堆区开辟了新的内存空间存放每个索引值
lis[1] = 'a' # 原来的lis【1】指向了新的空间(‘a'),而lis3中一阶元素本就在另一块区域指向拷贝的新空间
lis[3][1] = 666 #例外:可变数据类型,如list,不用变地址
print(lis2)
print(lis3)
print('%d %d %d'% (id(lis),id(lis2),id(lis3)))
print('%d %d %d\n'% (id(lis[1]),id(lis2[1]),id(lis3[1])))
###########深拷贝:将可变类型开辟新地址,其他一样(import copy,lis2=copy.deepcopy(lis1))
(5)——————————————————————list————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
tup = ('飞起玉龙三百万',) #没逗号就成str了
tup1 = 1,2
print(type(tup),len(tup))
print(type(tup1),len(tup1))
print('整个元组:',tup[0:])
print('0号元素:',tup[0])
print('元素切片:',tup[0][0:-1:3])
#####
tup = (10,20,20,30,40,50)
print('方法1·索引:%d'% tup.index(20))
print('方法2·统计:%d'% tup.count(20))
(6)——————————————————————tuple————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
set1 = {} # 空字典
set2 = {1,2}
set3 = set('1')
set4 = set() # 空集合不为{}
print(type(set1),type(set4))
print(set3,'————',set4)
#####元素不重复
set2.add('3')
print('增加元素"3"(不重):',set2)
set2.add(2)
print('增加元素 2 (重复):',set2)
#####
set2.update('哈哈哈啦')
print('\n',set2,'\n')
delete = set2.pop() #RT
print('随机删除:',set2,'————',delete)
set2.remove(2)
print('指定删除:',set2)
set2.clear()
print(' 清空  :',set2)
del set2
(7)——————————————————————set——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

(8)——————————————————————dict—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
sent1 = '我是{},我是{},我是{}'.format('奶龙','奶龙','最强奶龙')
sent2 = '我是{1},我是{1},我是{0}'.format('奶龙','最强奶龙')
sent3 = '我是{haha},我是{mie},我是{mie}'.format(haha='奶龙',mie='最强')
print (sent1+'\n'+sent2+'\n'+sent3+'\n')
# #####
name = "KunKun"
name1 = f'唱跳'
name2 = f'{name} love {name1},rap。'
text = f'11{print('first',bool(0))}' # print出现便会执行。第一次

print(type(f'唱跳'),type(bool(1)),'——————分割线——————')
print(type(f'{print('第二次',bool(0))}'),'\n') # 又执行了一遍,且先于外面包着的print!!)
print(name2)
print(text) # print无RT,所以打出来None
(9)———————————————————————————printf——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
text = f'11{print(1)}' if 5<4 else f'22{print(2)}' # str和int无法比较大小
print(text,' # <三元if运算,未选的条件整个忽略,不会执行>\n')
str1 = 'a哈'
on = 0
#### <取值循环for> 循环次数取决于in后包含值个数
for i in str1: # 跳过<本次>循环
    on += 1
    print('%d:%s'% (on,i))
else: # break使for结束。可以跳过else
    print('\t--end--\n')
#####乘法表
for i in range(1, 10): # range同样顾头不顾尾,只有1-9。
    for j in range(1, i+1):
        print(f'{j}x{i}={i*j}\t',end='') ##???????<!>
    print()
#####
print('') #空一行
a = 1
while a <= 3:
    print('第{}遍打印'.format(a))
    a += 1
else:
(10)↑———————————————————————流程控制1———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
***********循环一定要看好语句位置!!!
    print('--完毕--\n')
####求1-2+3-4+5-6 … -100的所有数的和
num0 = 1
sum0 = 0
while num0 <= 100:
    sum0 -= num0 if num0 % 2 == 0 else -1*num0 #三元 & +=!
    num0 += 1
else:
    print(sum0)
(11)↑———————————————————————流程控制2———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
ASCII = '仅识别英文|1字节'
GBK = '识别英文+中文|1字节+2字节___(GB2312)'
unicode = '万国码|固定2字节'
utf_8 = 'Unicode Transformation Format|不定长,不适于内存直接使用'
(12)↑———————————————————————字符编码————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
def wu_wa():
    """启动"""
    f'函数体'
    print('鸣潮,启动!')
    return #return为函数结束标志,RT默认为None
def win():
    """战斗"""
    f'...'
    print("战斗,爽!")
    return 0
# f'调用:{wu_wa()}'
buYong = type(wu_wa())#无括号,为<函数>类型;有括号,为返回值类型,会调用
print(buYong,type(win()))#即使在表达式,也会调用,我是说加上括号的话
(13)↑———————————————————————函数(1)————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
#####带参数:
def calculate(str1):
    """剥夺力量"""
    str1 = str1 + '————你已被,剥夺力量!'
    return str1
print(calculate(input()))

####默认参数(未发生传参,使用default),多个参数:
def count(*args):#位置参数
    """数个数"""
    sum1 = 0
    for _ in args:##哇塞
        sum1 += 1
    return sum1
sum0 = count(1,2,3,4,5)
print(sum0)

#####
def dictionary(**kwargs):#关键字参数
    """编字典"""
    print(kwargs)
dictionary(name = 'lyric_rain',dream = 'go big')

#####提示:
def tips(string:str,num:int)-> str:
    print(str(string)+str(num))
    return '0'
tips('第',1)
print(tips.__annotations__)
print(tips.__name__)
print(tips.__doc__)
(14)↑———————————————————————函数(2)———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
global,nonlocal
var = func.
装饰器,迭代器,生成器。。。
(15)↑———————————————————————函数(3)———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
import xxx (as m)
print(__name__)#输出__main__==文件被<运行>
from 模块 import 属性## * 代表 所有属性
???print(sys.modules)
(16)↑———————————————————————模块——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
num = input()
lis_a = []
while True:
    an = input()
    if an.endswith('\n'):
        break
    lis_a.append(an)
    if an.lower() == ' ':  # 检查是否输入' '
        continue

print(lis_a)
n = int(input().strip())
l = list(map(int,input().strip().split()))
c = 0
for i in l:
    if i & (i-1) == 0 or i <= 1:
        c += 1
print(c)
(17)↑———————————————————————<2024>数字诗意——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值