Python基础----面试常考题

Python强大的功能

a=[i for i in range(1000)]
print(a)


b=[a[i][i] for i in range(len(a))]  输出1,5,9
b=[a[i][2-i] for i in range(len(a))]输出 1,5,7
print(b)

金典题目

   a=[[2*j+1+i+j for i in range(3)] for j in range(3)]
    print(a)
    输出123456789

反转

a={1:2,3:4,5:6}
b={v:k for k,v in a.items()}   
print(b)

遍历

a='123'
for b in a:
    print(b)
a=['123',1,2,3,(1,2)]
for b in a:
    print(b)
for i in range(2,7,3):起始值,结束值,间隔
    print(i)
a='qrwyyqd'
for xb,z in enumerate(a):打印下标和值
    print(xb,z)
a={'name':'张三','age':18}
for x in a:
    print(x)
for x in a.keys():
    print(x)                 输出键,默认输出键

a="125abc__aAA@@"
#以下都是初始值
i=0
sz=0
xhx=0
zm=0
while i<len(a):
    if a[i]>='a' and a[i]<='z'or a[i]>='A' and a[i]<='Z':
        print(i,"位置是字母",a[i])
        zm+=1#统计字母个数
    elif a[i]>='0' and a[i]<='9':
        print(i,'位置是数字',a[i])
        sz+=1#统计数字个数
    elif a[i]=='_':
        print(i,'位置是下划线',a[i])
        xhx+=1#统计下划线个数
    i=i+1
print('字母是',zm)
print('数字椒是',sz)
print('下划线是',xhx)

求 大字母 小字母 数字的个数

  a='123abcABC__@'
    xzm=0
    dzm=0
    sz=0
    xhx=0
    for zf in a:
        if zf>='a' and zf<='z':
            print('小写字母',zf)
            xzm+=1
        elif zf>='A' and zf<='Z':
            print('大写字母',zf)
            dzm+=1
        elif zf>='0' and zf<='9':
            print('数字',zf)
            sz+=1
    print('小字母',xzm)
    print('大字母',dzm)
    print('数字',sz)

倒着排列

a=[1,2,3,4,5,0]
i=0  开头下标
j=len(a)-1   结束下标
while i<j:
    t=a[i]
    a[i]=a[j]
    a[j]=t
    i+=1
    j-=1
print(a)

传送带

import time
a=[1,2,3,4,5]
while True:
    t=a[0]
    i=0
    while i<len(a)-1:
        a[i]=a[i+1]
        i+=1
    a[len(a)-1]=t
    print(a)
    time.sleep(1)

#[3,34,54,76,17,31,97,182] 所有质数输出

a=[3,34,54,76,17,31,97,182]
for i in range(0,len(a)):
    j=2
    while j<a[i]:
        if a[i]%j==0:
            print(a[i],'不是质数')
            break
        j+=1
    else:
        print(a[i],'是质数')
i=20
for i in range(20,101):
    if i%3==0 or i%7==0:
        print(i)
    i+=1
 a='1527fag61'
i=0
b=0
while i<len(a):
    if '0'<=a[i]<='9':
        b=b*10+int(a[i])
    i+=1
print(b)

遍历字典

    a={
        '001':{'name':'张三','age':'18','adress':'北京'},
        '002':{'name':'张二','age':'28','adress':'上海'},
        '003':{'name':'张大','age':'38','adress':'北京'},
        }
    一,
    b=str(input('请输入序号'))   str表示字符串
    for i,j in a[b].items():#items表示 键和值同时输出
        print(i,j)
    二,
    for k in a.keys():#把a里的key每一个拿出来
        print(k,end=' ')
        for k1 in a[k].keys(): #a[k]是k对应的每个value,也是一个字典,字典有keys属性,一个个拿出来给k1
            print(k1,a[k][k1],end=' ')
        print()

三,
for k,v in a.items():
    print(k,end=' ')
    for k1,v1 in v.items():
        print(k1,v1,end=' ')
    print()

重点 get提取字典的值

a={'a':20,'b':30,'A':4,'B':22,'c':4}
b={k.lower(): a.get(k.lower(),0)+a.get(k.upper(),0) for k in a.keys()}
print(b)

行加加输出

a='1234567890abc'
hang=1
count=0
i=0
while i<len(a):
    print(a[i],end='')
    if count==hang:
        print()
        count=0
        hang+=1
    i+=1

输出金字塔(掏空后的三角形)

class Aa():
    def Bb(self):
     i=1
     while i<6:
         j=1
         while j<=5-i:
             print(' ',end='')
             j+=1
         j=1
         while j<=2*i-1:
             if j==1 or j==2*i-1 or i==5:
                 print('*',end='')
             else:
                 print(' ',end='')
             j+=1
         print()
         i+=1
p=Aa()
p.Bb()    

类属性常考面试题

class Student():
    count=0类属性
    def __init__(self,name,age):初始化
        self.name=name增加对象属性
        self.age=age
        Student.count+=1
    def say(self):
        print(self.name,self.age)
zs=Student('张三',18)
ls=Student('李四',29)
zs.count=10
ww=Student('www',21)
print(Student.count)
delattr(zs,'count')删除属性
print(zs.count) 
print(ls.count)
print(ww.count)

计算阶乘

hanshu()
def jiecheng(n):  阶乘
    if n==1:
        return 1
    else:
        return n*jiecheng(n-1)
print(jiecheng(5))

金典题目
a=[lambda x:x*i for i in range(3)]
print(a0)
print(a1)
print(a2)面试

在这里插入图片描述

a=100
b=30
c=1
def waibu():
    b=200
    c=2
    def neibu():
        c=300
        print(c)#LOCAL局部作用域
        print(b)#ENLCOSE嵌套
        print(a)#GLOBAL全局
        print(max)#B-BUILT-TN内置
    neibu()
waibu()   面试

请输入两个数,求两个数之间的所有质数,以及所有质数的和,并且求出最大值最小值

  i=0
    l=[]
    while i<2:
        data=int(input('请输入第{}个数'.format(i+1)))
        data2=int(input('请输入第{}个数'.format(i+2)))
        for i in range(data,data2+1):
            j=2
            while j<i:
                if i%j==0:
                    break
                j+=1
            else:
                l.append(i)
    print(l)
    sum=0
    j=0
    while j<len(l):
        if j==0:
            max=l[j]
            min=l[j]
        else:
            if j>max:
                max=l[j]
            elif j<min:
                min=l[j]
        sum+=l[j]
        j+=1
    print(sum,min,max)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值