跳至主要內容

练习题

薇念约 782 字

Python练习题

回文数

从键盘任意输入一个3位以上的数,若小于3位,则提示输入错误;大于等于3位则判断是否为一个回文数

num1 = '121'

# 再判断输入是否为空
if num1 == '':
    print('输入错误!')
elif len(num1) < 3:
    print('输入错误!')
elif not num1.isdigit():
    print('输入错误!')
elif num1 == num1[::-1]:
    print(num1 + '是一个回文数!')
else:
    print(num1 + '不是一个回文数!')

enumerte()的用法

从键盘任意输入一串字符串,若字符两边存在空格则去除两边的空格,分别有以下要求

字符串奇位数将其化为小写字母,偶数位转化为大写字母,数字及其他字符保持不变

for循环实现:

str1 = input('请输入一串字符串:')
str1 = str1.strip()

str2 = ''
for i, char in enumerate(str1):
    if str1 == '':
        print('输入错误!')
    elif i % 2 == 0:
        str2 += char.lower()
    else:
        str2 += char.upper()
print(str2)
  • enumerate()是python的内置函数、适用于python2.x和python3.x
  • enumerate在字典上是枚举、列举的意思
  • enumerate参数为可遍历/可迭代的对象(如列表、字符串)
  • enumerate多用于在for循环中得到计数,利用它可以同时获得索引和值,即需要index和value值的时候可以使用enumerate
  • enumerate()返回的是一个enumerate对象

python中最常用的数据结构就是list,处理list中每个元素,通常都用for循环搞定。

求1到100的总和

# 计算1至100的和
num1 = 0
for i in range(1, 101):
    num1 = num1 + i
print(num1)

计算1至100的奇数之和

sum1 = 0
num2 = 99
while num2 > 0:
    sum1 = sum1 + num2
    num2 = num2 - 2
print(sum1)

字典和列表的区别

dict内部存放的顺序和key放入的顺序是没有关系的。

和list比较,dict有以下几个特点:

  1. 查找和插入的速度极快,不会随着key的增加而变慢;
  2. 需要占用大量的内存,内存浪费多。

而list相反:

  1. 查找和插入的时间随着元素的增加而增加;
  2. 占用空间小,浪费内存很少。

所以,dict是用空间来换取时间的一种方法。

dict可以用在需要高速查找的很多地方,在Python代码中几乎无处不在,正确使用dict非常重要,需要牢记的第一条就是dict的key必须是不可变对象

这是因为dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。这个通过key计算位置的算法称为哈希算法(Hash)。

要保证hash的正确性,作为key的对象就不能变。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key

set

set

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

要创建一个set,需要提供一个list作为输入集合