Python100题
先安装一个库,下文会用
import time
from tqdm import tqdm
for i in tqdm(range(10000)):
time.sleep(.01)
在运行了~
所有的代码都是在VScode内完成
先建立一个jupyter的笔记本
然后转换为脚本形式
当在编辑器内跳出括号,用插件
自己搜搜
以下代码不建议在普通的编辑器内使用,推荐code
可以按键运行
也可以shift+Enter运行,而且打开一个新cell
会在左面的页面打开运行页面,以下内容都是小代码。
有注释~~~
'''
Author: your name
Date: 2021-02-16 08:02:12
LastEditTime: 2021-02-16 09:38:09
LastEditors: Please set LastEditors
Description: In User Settings Edit
FilePath: \Python学习程序\100题.py
'''
# To add a new cell, type '# %%'
# To add a new markdown cell, type '# %% [markdown]'
# %%
2**3
# %%
pow(2,3)
# %%
l = (121,3,467,98,90)
print(max(l ))
print(min(l))
# %%
# 将字符列表转为字符串
l=['python','Circle','is','ok']
j=' '.join(l)
print(j)
# %%
# 快速打印ascii字符
import string
from typing import Match
string.ascii_letters
# %%
#让字符串居中
k='这个是一段测试用的字符'
k.center(50)
k.center(50,'*')
# %%
# 在字符串中找到子串
ss = 'I Love You'
ss.find('I')
ss.find('You')
# %%
#让字符首字母大写,其余字母小写
ss = 'i love java'
ss.title()
# %%
# 第二种方法
import string
ss='i love python'
string.capwords(ss)
# %%
# 清空列表内容
l = [1,2,3]
l.clear()
print(l)
# %%
# 上一题的第二种方法
k = [1,2,3]
k[:]=[]
print(k)
#切片赋值
# %%
# 计算一个指定的元素在列表中出现的次数
l = ['i','am','is','ok','ok','ok']
l.count('ok')
# %%
# 如何在列表末尾加入其它的元素
l = [1,2,3]
j = [4,5,6]
l.extend(j)
print(l)
# %%
# extend和列表相加的区别
l=[1,2,3]
j=[1,2,3]
print(l+j)
# %%
num = [1,2,3,4,5]
num.insert(2,'three')
print(num)
# %%
num=[1,2,3,4,5]
num[2:2]=['three']
print(num)
# %%
num=[1,2,3,4,5]
num.pop()
print(num)
# %%
num=[1,2,3,4,5]
num.pop(1)
print(num)
# %%
num=[1,2,3,4,5]
num.remove(5)
print(num)
# %%
num=[1,2,3,4,5]
num.reverse()
print(num)
# %%
num=[1,2,3,4,5]
num[::-1]
print(num)
# %%
#只包含一个元素的元组
t=(1)
type(t)
# %%
t=(1,)
type(t)
# %%
'i love python'.replace('o', 'ee')
# %%
# 将字符按照空格分隔
' i love python '.strip()
# %%
# 怎么给字典不存在的key指定默认值
d = {'age':42,'name':'g'}
d.get('aa','N/A')
# %%
sum(range(1,101))#1-100的和
# %%
dir(request)
# %%
range.__doc__
# %%
import webbrowser
webbrowser.open('www.baidu.com')
# %%
# Python的占位符怎么表示
if name == 'zzg':
print('饿')
elif name == 'dadama':
pass
# pass的意思就是没有想好代码块的逻辑
# %%
def square(x):
"""返回平方值"""
return x*x
square.__doc__
# %%
# 如何定义私有方法
class Person:
def __name(self):
print('私有方法')
#注意用from module import *导入时不会导入私有方法
# %%
# 【判断一个类的从属
class A:
pass
class B(A):
pass
issubclass(B,A)
# %%
import random
random.choice([1,'sd',3,'都'])
# %%
import random
random.__all__
# %%
type({})
# %%
a={6,7,8}
b = {7,8,9}
a.union(b)
# %%
a={6,7,8}
b = {7,8,9}
a|b
# %%
a={6,7,8}
b = {7,8,9}
a&b
# %%
a={6,7,8}
b = {7,8,9}
a.intersection(b)
# %%
a={6,7,8}
b = {7,8,9}
a^b
# %%
ax={6,7,8}
y = {7,8,9}
ax.symmetric_difference(y)
# %%
a={6,7,8}
b = {7,8,9}
a-b
# %%
a={6,7,8}
b = {7,8,9}
a.difference(b)
# %%
import random
t = (2020,7,8,9,4,3,6,7,8,5,3,21,234)
random.sample(t,2)
# 从一个序列随机返回n个不同值的元素
# %%
import random
random.uniform(10,20)
# %%
import random
random.randrange(0, 100, 10)
# %%
with open('bruce.txt', 'r') as f:
f.read()
# %%
import sys
sys.path
# %%
import os
os.system('cd C:\Users\yunswj\Desktop\Python学习程序 && mkdir aaa.txt')
# %%
import time
time.asctime()
# %%
import time
time.localtime(18888888888)
time.struct_time(tm_year=2029,tm_mon=11,tm_day=9,tm_hour=11,tm_min=21,tm_sec=28,tm_wday=313,tm_isdst=0)
# %%
#随机打乱列表
import random
t=list(range(20))
print(t)
random.shuffle(t)
print(t)
# %%
# 怎么用for循环实现吧字符串编程Unicode码位的列表
st = '!^&^&*(@^#(*&@'
codes = []
for s in st:
codes.append(ord(s))
print(codes)
# %%
# 用列表推导式实现吧字符串编程Unicode码位的列表
st = '!^&^&*(@^#(*&@'
codes = [ord(s) for s in st]
print(codes)
# %%
# 打印两个列表的笛卡尔积
colors = ['blacks', 'white']
sizes = ['S','M','L']
for tshirt in ('%s %s'%(c, s) for c in colors for s in sizes):
print(tshirt)
# %%
import itertools
list(itertools.product
(
['blacks','white']
))
# 使用itertools的product生成器函数
# %%
#我们使用for循环提取元组里面的元素,对于我们不想接受的元素,可以用占位符_来接受
player_infos = [('kobe','24'),('James','16'),('Iverson','3')]
for player_names, _ in player_infos:
print(player_names)
# %%
# 用什么方式接受不确定的值或者参数
#用*args的方式,*args可以在任意的位置
a,b,*c = range(8)
print(a,b,c)
# %%
# 用切片将对象倒叙
s = 'zxcvbnm'
s[::-1]
# %%
l = [1,2,3]
id(l)
# %%
# 注意对不可变的序列进行重复的拼接操作的时候,效率胡很低,因为每次都有一个新对象,儿解释器需要把原来对象中的元素先复制到新的对象里,然后再追加新元素
# %%
# 元组不可变,错误抛出
t=(1,2,[30,40])
t[2] += [50,60]
# %%
l = [1,9,5,8]
j = l.sort()
print(j = l.sort())
print(k = sorted(l))
# %%
# 将以为数组变为二维的数组
import numpy
a = numpy.arange(12)
print(a)
a.shape = 3, 4
print(a)
# %%
# 快速的插入元素到列表的头部
l=[1,2,3,4,5]
l[0:0] = 'python'
print(l)
# %%
# 可以用插入法,第一个参数是位置的坐标
l=[1,2,3,4,5]
l.insert(0,'first')
print(l)
# %%
#那其实在第一个元素的前面添加元素是个耗时的事情,可以使用双向队列
from collections import deque
dp = deque(range(10),maxlen=15)
print(dp)
dp.appendleft(-1)
print(dp)
#可以指定这个队列的大小,如果满了,还可以反向的删除过期的元素
# %%
# 如何统计字符出现的个数
import collections
ct = collections.Counter('fdghkslgfdskajfgdhjksgfhjkdsgfhdskgfhdks')
print(ct)
print(ct.most_common(2))
# 排名靠前的元素是
# %%
l=['A','B','A','A']
print(list(set(l)))
# %%
# 求m在n中出现的次数
m = {'A','B','C'}
n = {'B','C','D'}
found = 0
for i in m:
if i in n:
found +=1
print(found)
# %%
m = {'A','B','C'}
n = {'B','C','D'}
len(m&n)
# %%
m = {'A','B','C'}
n = {'B','C','D'}
# 如果不是集合的话,先转换再求交集
len(set(m) & set(n))
# %%
# 另一张解法是
m = {'A','B','C'}
n = {'B','C','D'}
len(set(m).intersection(n))
# %%
# 参看系统的默认编码方式
# 不写这
# %%
any([])
# %%
# 判断一个对是不是可以被调用
[callable(obj) for obj in (abs, str, 2)]
# %%
# 得到类的实例没有而函数有的属性列表
class C:
pass
obj = C()
def func():
pass
sorted(set(dir(func))-set(dir(obj)))
# %%
#在函数中,不想支持数量不定的定位参数,但是想仅限关键字参数,参数怎么定义
def f(a,*,b):
return a, b
# f(a, b=2)
f(a=1, b=2)
# 这样的话,强制传入实参
# %%
# 高效的完成阶乘
from functools import reduce
from operator import mul
def func(n):
return reduce(mul,range(1, n+1))
func(5)
# %%
# 在闭包中怎么对数字,字符串,元组不可变的元素更新
# 在闭包里面,声明的变量是局部变量,局部变量改变会报错
def make_average():
count = 0
count - 0
def average(new_values):
nonlocal count, toatl
count += 1
total += toatl /count
return average
avg = make_average()
print(avg(10))
# %%
#测试代码的运行时间
import time
t0 = time.perf_count()
for i in range(10000):
pass
t1 = time.perf_count()
print(t1-t0)
# %%
# 打印出一个目录下所有的文件名和子文件名字
import os
dirs = os.walk('C:\Program Files (x86)\Adobe')
for dir in dirs:
print(dir)
# %%
import time
from tqdm import tqdm
for i in tqdm(range(10000)):
time.sleep(.01)