006、py43-day06-sky-20210805_2

 

 

题目1:实现冒泡排序(不要求提交,面试之前背熟,什么是冒泡排序需要自己了解)
具体需求:利用for循环,完成a=[1,7,4,89,34,2]的排序(小的数字排前面,大的排后面),不能使用sort、sorted等内置函数或方法
编码提示:
1、先写出第一轮比较的代码哦。如在a当中,将最大的一个数据放在列表最后。
2、再写出第二轮比较的代码:在1之后的列表当中,将第二大的数据,放在列表的倒数第二
3、以此类推
4、比对以上所写的代码,有何相同,有何不同之处。再考虑使用外层for来替换

 

代码如下:

a = [1, 7, 4, 89, 34, 2]
temp = [i for i in range(len(a))][::-1]

for i in temp:
    for j in range(0, i):
        if a[j] > a[j+1]:
            a[j], a[j+1] = a[j+1], a[j]
        print(f'第{j+1}次交换后的列表:', a)
    print(f'==================第{len(a)-i}轮交换后的列表:', a)
print('\n****************************最终排序结果:', a)
View Code

执行结果如下:

第1次交换后的列表: [1, 7, 4, 89, 34, 2]
第2次交换后的列表: [1, 4, 7, 89, 34, 2]
第3次交换后的列表: [1, 4, 7, 89, 34, 2]
第4次交换后的列表: [1, 4, 7, 34, 89, 2]
第5次交换后的列表: [1, 4, 7, 34, 2, 89]
==================第1轮交换后的列表: [1, 4, 7, 34, 2, 89]
第1次交换后的列表: [1, 4, 7, 34, 2, 89]
第2次交换后的列表: [1, 4, 7, 34, 2, 89]
第3次交换后的列表: [1, 4, 7, 34, 2, 89]
第4次交换后的列表: [1, 4, 7, 2, 34, 89]
==================第2轮交换后的列表: [1, 4, 7, 2, 34, 89]
第1次交换后的列表: [1, 4, 7, 2, 34, 89]
第2次交换后的列表: [1, 4, 7, 2, 34, 89]
第3次交换后的列表: [1, 4, 2, 7, 34, 89]
==================第3轮交换后的列表: [1, 4, 2, 7, 34, 89]
第1次交换后的列表: [1, 4, 2, 7, 34, 89]
第2次交换后的列表: [1, 2, 4, 7, 34, 89]
==================第4轮交换后的列表: [1, 2, 4, 7, 34, 89]
第1次交换后的列表: [1, 2, 4, 7, 34, 89]
==================第5轮交换后的列表: [1, 2, 4, 7, 34, 89]
==================第6轮交换后的列表: [1, 2, 4, 7, 34, 89]

****************************最终排序结果: [1, 2, 4, 7, 34, 89]

Process finished with exit code 0
View Code

 

 

题目2:编写程序实现,
用户从键盘输入一行字符,编写一个程序,统计并输出其中英文字符,数字,空格和其他字符的个数。
提示:遍历字符串,通过字符串方法判断字符类型,然后统计

 

代码如下:

# 方法一:
str_count = 0
digit_count = 0
space_count = 0
others_count = 0
temp = input('请输入一行字符(包含:英文、数字、空格、其他字符):')
for item in temp:
    if item.isdigit():
        digit_count += 1
    elif item.isalpha():
        str_count += 1
    elif item.isspace():
        space_count += 1
    else:
        others_count += 1

print(f'英文字符包含:{str_count}个')
print(f'数字包含:{digit_count}个')
print(f'空格包含:{space_count}个')
print(f'其他字符包含:{others_count}个')
View Code

执行结果如下:

请输入一行字符(包含:英文、数字、空格、其他字符):aaaBBB111222   #$%&%^
英文字符包含:6个
数字包含:6个
空格包含:3个
其他字符包含:6个

Process finished with exit code 0
View Code

 

 

题目3:使用print函数和循环结构输出如下由*组成的金字塔(可以尝试根据层数动态输出)

    *
   * *
  * * *
* * * * *

 

代码如下:

lie = 7
hang = int(lie/2) + 1

for i in range(hang):
    print(' '*(hang-1-i) + '*'*(2*i + 1))
View Code

执行结果如下:

   *
  ***
 *****
*******

Process finished with exit code 0
View Code

 

posted @ 2021-08-11 01:14  空-山-新-雨  阅读(62)  评论(0编辑  收藏  举报