一次搞懂 Python 判断、字典、字符串处理逻辑:5题巩固基础语法!

在python学习过程中,我们常常会陷入“会写但不会改、能运行但不理解”的状态。今天我们聚焦于 5 个小练习题,系统巩固以下几个核心知识点:

  • 条件判断符号:==!=<=>=
  • 字符串与字典操作
  • 中文字符的判断方式
  • 列表合并成字典的实用技巧

让我们逐题解析,一起提升对 Python 基础语法的掌控力!


题目一:输出 1000 以内,能被 7 整除且不能被 5 整除的所有数

考察:判断语句的逻辑理解 —— 多条件组合与比较运算符的使用

要输出1000以内所有满足条件的数,首先经过for语句依次将1000内的数字进行遍历,再通过条件筛选判断数字是否满足条件。

for i in range(1,1001):   
    if i % 7 == 0 and i % 5 != 0:   
        print(i)

巩固语法点:

  1. 符号含义:
  • ==:判断“相等”

  • !=:判断“不相等”

  • %:取余,用于判断能否整除

  • and:多个条件同时成立

2.for 循环中的range(起始值,所需终止值+1),我们所需要的是1000以内的所有数,而range的终止值是不包括最后的那个数字的(即前包后不包),因此在这里应该写1000+1=1001。

题目二:构造一个形如 {1}{2}、…的字典,键为 '{i}',值为对应整数 i(范围为 1 到 N)。

考察:字典构建逻辑 —— 用字符串格式构造键名

N = int(input("请输入一个正整数N:"))
D = {}
l = []

for i in range(1, N + 1):    #得到N个数字
    s = '{' + str(i) + '}'    #通过三个字符串{、str(i)、}拼接为{i}
    l.append(s)               #将生成的字符串添加到并列表中

for item in range(N):        #通过依次遍历,将l列表中的元素,添加进D字典中
    D[l[item]] = item + 1     #l[item]是通过下标索引将l中的元素提出


print(l)
print(D)             #最后打印出D字典

巩固语法点:

  • '{' + str(i) + '}':字符串拼接技巧

  • str(i):类型转换,整型转字符串,构造成形如{1}的字符串

  • 列表字典 的配合使用

  • l.append(s):将构造好的键加入列表

  • D[key] = value:用下标配对构建字典,更好地理解列表和字典之间如何通过索引一一配对。


题目三:将两个列表合并为一个字典

题目中说有两个列表,那么要组成一个字典。一个列表代表字段名,一个列表代表对应信息,最后组合为一个字典。

cat = ['name', 'age', 'city']      #第一个列表 
information = ['miu miu', '2岁', 'BeiJing']       #第二个列表
my_dict = {}  #形成一个空字典用于储存两个列表信息

for i in range(len(cat)):      #以列表的长度进行i的循环
    my_dict[cat[i]] = information[i]     
                  #这里是字典的赋值方式,通过列表下标,将两个列表信息一一对应。

print(my_dict)

知识点讲解:

  • len(cat):获取列表长度

  • cat[i]information[i]:分别取出字典对应的 key 和 value

  • my_dict[key] = value:构建字典项。


题目四:实现统计字符串中汉字的个数

从题目上看,也就是说统计一个字符串中,不是大小写字母、也不是数字的字符个数(即判断中文或其他符号)。那么要进行判断,就要考虑使用if语句,创造条件来进行判断字符串中元素是否满足条件。

Q = 'N1bb3bn3nm2m3bbv23144今天是星期几呢'
num = 0

for i in Q:
    if not 'a' <= i <= 'z':
        if not 'A' <= i <= 'Z':
            if not '0' <= i <= '9':
                num += 1

print(num)    #print的结果为7

知识点讲解:

在这串代码中,最重要的也是最难理解的就是这个三层 if 的判断逻辑,它的表述意思是:i

  • 不是小写字母

  • 不是大写字母

  • 也不是数字
     那么就是“其他字符”,包括中文、符号、空格等,在这里我们的字符串中,只举例说明对字符串中汉字个数的判断,若要继续判断是否为符号、空格,就继续增加if条件进行判断。

Python 字符串的比较运算符(比如<、>)可以用于字符范围判断,使用 ASCII 范围手动判断字符类型,并不需要将所有a-z的元素储存在一个列表中进行判断。


题目五:打印100-1000的水仙花数(阿姆斯特朗数)
 

所谓水仙花数,是指一个三位数,其各位数字立方和等于它本身。例如:153 = 1³ + 5³ + 3³。在这道题目上考察的就是整数位数分离与幂运算逻辑,将数依次分隔得来之后,再进行if语句判断对每一位分别求立方(**3),判断三者之和是否等于原数 i,是否满足水仙花数的定义。

for i in range(100,1001):
    num1=i//100           #i除以100之后取整,得到百位数
    num2=(i//10)%10      #3位数先除以10取整得两位数,再除以10取余数,得十位上的数
    num3=i%10   #三位数除以10取余,就是个位上的数

    if num1**3+num2**3+num3**3 == i:
        print(i)          #输出的结果为153、370、371、407

知识点讲解:

  • if语句中的“**”是幂运算(次方)符号,比如2 ** 3(2 的 3 次方)=8。
  • 三位数的百位用 // 100 得出

  • 十位:先除以 10 去掉个位,再 % 10 取十位

  • 个位:直接 i % 10

总结

对于每道题来说,执行的代码都不长,但理解其中的逻辑和语法并不简单,精准掌握这些“简单语法”,决定了你解决问题的速度与思维效率。其中涉及到的内容罗列如下:

| 题号 | 巩固语法           | 理解逻辑核心              |
| ①   | 比较运算、逻辑组合  | 多条件精确判断              |
| ②   | 字符串拼接、字典构建| 如何动态生成结构化数据        |
| ③   | 列表遍历、索引访问  | 键值配对、数据字段绑定        |
| ④   | ASCII 判断      | 手写字符分类,训练逻辑推导能力 |
| ⑤   | 整数除法与幂运算    | 取位技巧与数学逻辑验证       |

如果你想继续巩固字符串处理、循环逻辑、Python函数写法、列表推导式等内容,之后也会持续更新,敬请期待!欢迎留言或收藏关注!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值