python基础之逻辑题(2)
k=1000 while k>1: print(k) k=k/2 结果:10次 ------------------ k=1000 while k>1: print(k) k=k//2 结果:9次
numbers = [1,2,3,4] numbers.append([5,6,7,8]) #添加的是一个整体,想当一个元素,不要理解错了 print (len(numbers)) 结果: 5
import math print(math.floor(5.5)) ------------------- 结果: python2 :5.0 python3 : 5
names1 = ['Amir','Barry','Chaies','Dao'] names2 = names1 names3 = names1[:] names2[0]='Alice' names3[1]='Bob' sum = 0 for ls in (names1,names2,names3): if ls[0]=='Alice': sum+=1 if ls[1]=='Bob': sum+=10 print(sum) ------------------------------------ names1 ['Alice', 'Barry', 'Chaies', 'Dao'] names2 此时是赋值,相当于完全复制,所以其内存空间与值与names1是完全相同的 ['Alice', 'Barry', 'Chaies', 'Dao'] names3 此时是浅拷贝,所以相当于只拷贝到表层,names3[1]='Bob' 时只改变了names3 中的值 ['Amir', 'Bob', 'Chaies', 'Dao'] 结果: 12
#列如 输入字符串'1,2,3'则输出位1,2,3,12,13,23,123(组合数不考虑顺序 所以12,21是等价的) imp s = "1,2,3" # lst = s.split(",") # [1, 2, 3] for i in range(1, 2**len(lst)): # print(i) bin = format(i, "0"+str(len(lst))+"b") # print(bin) num = "" for j in range(len(bin)): if bin[j] == '1': num += str(lst[j]) print(num) 结果 3 2 23 1 13 12 123
int i=10 int n=i++%5 结果 11,0 i++ 是后加加,在表达式内不自增 int n= i++%5; // i=10进入,n=0,出了表达式 才自增 i=11; int i=11 int m= ++i%5; // i=11 进入, 前加加,则先增1,i=12, m=2, 出表达式 i 维持12
7.使用生成器编写fib函数,函数声明为fib(max)输入一个参数max值,使得该函数可以这样调用
def fib(max): yield 1000 for i in range(100): print(fib(1000)) #生成器 #并产生如下结果(斐波那契数列)1,1,2,3,5,8,13,21,.... n=100 a,b =1,1 while a<n: print(a) a,b=b,a+b
def base62Encode(n): s = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" lst = [] while n > 0: lst.append(n % 62) # 58 n = n // 62 lst = lst[::-1] result = "" for item in lst: # 58 result += s[item] return result print(base62Encode(58)) 结果 w
import time def wrapper(fn): n = 0 def inner(*args, **kwargs): nonlocal n now = time.time() if now - n > 10: n = now ret = fn(*args, **kwargs) return ret else: print("不让访问, 您访问的频率太快了") return inner @wrapper def target(): pass target() time.sleep(10) # 让他睡10秒 target() target() target()
结果:
不让访问,你访问的频率太快了
不让访问,你访问的频率太快了
结果: python3: (返回迭代器) <map object at 0x0000020A1DFF7198> python2: (返回列表) ['1', '2', '3', '4', '5']