python智力问答测试,python小题测试

最近想试试手,网上搜素题目,找了3个题目进行编程:

1、把一个IP地址转成二进制格式表示

# -*- coding:utf-8 -*-

def ipAddr_format(ipaddr):

#ip地址以‘.’进行分割,字符串列表

strlist1=ipaddr.split('.')

#转为整数,整数列表

intlist1=list(map(int,strlist1))

#转为二进制表达式,str列表

binlist1=list(map(bin,intlist1))

'''#打印二进制表达式元素

for element in binlist1:

print(element.split('b')[1])

'''

#将二进制表示以‘b’分割取第二个元素

newstr=[]

for ele in binlist1:

newstr.append(ele.split('b')[1])

#右对齐以0填充,宽8位

newstr1=[ele.rjust(8,'0') for ele in newstr]

#新字符串表示

temp = '-'.join(newstr1)

print(temp)

return temp

ipAddr_format('10.3.9.12')

2、求解Ax**2 + Bx +C = 0,此题转载网上代码

# -*- coding:utf-8 -*-

'''

求解方程A(x**2)+Bx+C=0,输入A,B,C

'''

def args_input(): #本段使用异常方式处理的比我好,舍弃了我自己写的部分

try:

A = float(input('请输入A的值:'))

B = float(input('请输入B的值:'))

C = float(input('请输入C的值:'))

return A, B, C

except:

print('请输入正确的数据类型')

return args_input() #此处好,异常后可以继续重新输入

def get_delta(A, B, C):

return B ** 2 - 4 * A * C

def solve():

A, B, C = args_input()

if A==0:

assert B!=0,'无效方程式'

print('x=',-C/B)

else:

delta = get_delta(A, B, C)

if delta < 0:

print('该方程无解')

elif delta == 0:

x = B / (-2 * A)

print('x=', x)

else:

# 计算x1 x2的值

x1 = (B + pow(delta, 0.5)) / (-2 * A)

x2 = (B - pow(delta, 0.5)) / (-2 * A)

print('x1=', x1)

print('x2=', x2)

def main():

solve()

if __name__ == '__main__':

main()

第3题, 将输入的字符串倒序,并输出长度

# -*- coding:utf-8 -*-

#常规列表处理方法

def strReverse():

sstr=input('请输入原始字符串:')

lenstr=len(sstr) #字符串长度

listr=list(sstr) #转为列表处理

newlistr=list(reversed(listr)) #颠倒元素后列表

dstr=''.join(newlistr) #拼接列表中的字符串

print(f'字符串长度:{lenstr},反向字符串{dstr}')

return(dstr)

#切片处理方法

def strReverse1():

sstr=input('请输入原始字符串:')

print(f'字符串长度:{len(sstr)},方向字符串:{sstr[::-1]}')

return sstr[::-1]

def main():

# strReverse()

strReverse1()

if __name__=='__main__':

main()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值