1. 题目:对 {45,12,14,32,1,43,5,20,54,73} 进行升序排序
from sys import stdout
arr = [45,12,14,32,1,43,5,20,54,73]
n = len(arr)
# 这里用的是冒泡排序,排序有很多种算法
for i in range(n):
for j in range(0, n - i - 1):
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
for i in range(len(arr)):
stdout.write(str(arr[i]))
stdout.write(' ')
2.二进制转十进制
sum = 0
str1 = input('请输入一个二进制数:')
lenth = len(str1) #求字符串长度
for i in range(1,lenth):
if str1[i] == '1': #判断该二进制数各位值为1或0,为1则进行后续计算
save = 2**(lenth-i-1) #存储当前位上转换后的数值 lenth-i-1即为当前位的2的指数
sum = sum+save #求和
#判断符号位并输出
if str1[0] == '1':
print('+%d'%sum)
else:
print('-%d'%sum)
这里只实现二进制转十进制,反过来原理一样,就不敲了!
3.字符串翻转
# -*- coding: utf-8 -*-
string = 'abcdef'
def string_reverse1(string):
return string[::-1]
def string_reverse2(string):
t = list(string)
l = len(t)
for i,j in zip(range(l-1, 0, -1), range(l//2)):
t[i], t[j] = t[j], t[i]
return "".join(t)
def string_reverse3(string):
if len(string) <= 1:
return string
return string_reverse3(string[1:]) + string[0]
from collections import deque
def string_reverse4(string):
d = deque()
d.extendleft(string)
return ''.join(d)
def string_reverse5(string):
#return ''.join(string[len(string) - i] for i in range(1, len(string)+1))
return ''.join(string[i] for i in range(len(string)-1, -1, -1))
print(string_reverse1(string))
print(string_reverse2(string))
print(string_reverse3(string))
print(string_reverse4(string))
print(string_reverse5(string))
这道题主要是为了考察并巩固大家上节课学的字符串的高级方法和循环结构,方法较多,大家举一反三!