版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_26566137/article/details/82290153
(1)按指定格式输出字符
names =[{'name':'Bart'},{'name':'Lisa'},{'name':'Maggie'},{'name':'Saggie'}]
def namelist(names):
nums = len(names)
if nums ==0:
return ''
elif nums ==1:
return (names[0]['name'])
elif nums ==2:
return(names[0]['name']+'&'+names[1]['name'])
else:
name_last = names[-2]['name'] +'&' + names[-1]['name']
name_li =''
for i in range(nums-2):
name_li =name_li + names[i]['name']+','
name_li += name_last
return name_li
print(namelist(names))
'''
','.join(['kk','k2'])
'kk,k2'
','.join(['kk','k2','iu'])
'kk,k2,iu'
'''
def namelist(names):
if len(names)>1:
return '{} & {}'.format(','.join(name['name'] for name in names[:-1]),
names[-1]['name'])
elif names:
return names[0]['name']
else:
return ''
print(namelist(names))
(3)将长方形划分成若干个正方形
# def spilt_quare(x,y):
# if x < y:
# rst = x
# temp = x
# y = temp
# x = y - x
# else:
# return spilt_quare(y,x)
# spilt_quare(x, y)
# return ([].append(rst))
#首先,确定x,y的顺序;然后,x,y会相互替换;最后,会依次循环,循环用while(变量)来实现;
def sqInrect(a,b):
if a == b:
return None
res = []
while b:
b,a = sorted([a,b])
res += [b]
a,b = b,a-b
return res
print(sqInrect(5,3))
# print(spilt_quare(5,3))
# def square_digits(num):
# a=[]
# for i in str(num):#循环
# a.append(str(int(i)*int(i)))
# return int(''.join(a))
#
# print(square_digits(9119))#811181
(4)输入数字,按一定规律运算输出结果;
def square_digits(num):
return int(''.join(str(int(d)**2) for d in str(num))) #循环跟函数在一条句子里面实现
# print(square_digits(9119))#811181
def square_digits(num):
return int("".join([str(n**2) for n in map(int,str(num))]))
print(square_digits(9119))#811181
def test_map(num):
new_num = map(int, str(num))
return new_num
print(test_map(123))
print(list(test_map(123)))
print(type(test_map(123)))
'''
<map object at 0x000001F8143E7908>
<class 'map'>
python2打印map对象可以直接print map
但是python3需要将之转为list对象,print(list(map))
'''
def square_digits(num):
return int(''.join([str(int(x)**2 for x in list(str(num)))]))
'''
list(str(124))
['1', '2', '4']
list(124)
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: 'int' object is not iterable
list函数
list() 方法用于将元组转换为列表。
注:元组与列表是非常类似的,区别在于元组的元素值不能修改,元组是放在括号中,列表是放于方括号中。
aTuple = (123, 'xyz', 'zara', 'abc');
aList = list(aTuple)
print "列表元素 : ", aList
列表元素 : [123, 'xyz', 'zara', 'abc']
list('abf'))
['a', 'b', 'f']
def sum_two_smallest_numbers(numbers):
return sum(sorted(numbers)[:2])
def sum_two_smallest_numbers_02(numbers):
#两个循环实现
min_01 = numbers[0]
min_02 = numbers[1]
# for idx,i in enumerate(numbers):
# if min_01>numbers[idx]:
# numbers[0] = i
# numbers[idx] = min_01
#####
for i in numbers:
if i < min_01:
numbers[0] = i
####上述代码存在问题,取最小的时候,其它位置的值未被替换掉,于是存在两个最小值;
for i in numbers[1:]:
if i < min_02:
numbers[1] = i
return numbers[0]+numbers[1]
def sum_two_smallest_numbers_03(numbers):
#一个循环实现,好像很难,,待解决!!!
min_01 = numbers[0]
min_02 = numbers[1]
if min_01 > min_02:
numbers[0] = min_02
numbers[1] = min_01
for idx,i in numbers:
if min_01 > i:
min_01 = i
def is_triangle(a,b,c):
#三角形成立的条件:任意两边之和大于第三边或者任意两边之差小于第三边;
if a<0 or b<0 or c<0:
return __boolen_true(a+b,c) and __boolen_true(a+c,b) and __boolen_true(b+c,a)
def __boolen_true(a,b):
if a>b:
return True
print(sum_two_smallest_numbers([1,6,5,8,3]))
print(sum_two_smallest_numbers([-1,-6,5,8,3]))
print(sum_two_smallest_numbers_02([1,6,5,8,3]))
print(sum_two_smallest_numbers_02([-1,-6,5,8,3]))
'''