吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1399|回复: 21
收起左侧

[讨论] 菜鸟教程 Python 练习实例1

[复制链接]
甜萝 发表于 2022-5-11 19:08
本帖最后由 paypojie 于 2022-5-25 20:36 编辑

如下
https://www.runoob.com/python/python-exercise-example1.html

我给出的解决方案

[Python] 纯文本查看 复制代码
def num(s):
    a,b,c = str(s),str(s),str(s)
    for i in range(123,433):
        s = str(i)
        if ((s[0] == a) and (s[1] != b) and (s[2] != c))\
            and s[1] != '5' and s[1] != '6' and s[1] != '7' and s[1] != '8' and s[1] != '9' and s[1] != '0'\
            and s[2] != '5' and s[2] != '6' and s[2] != '7' and s[2] != '8' and s[2] != '9' and s[2] != '0':
                if (s[1] == '1' and s[2] != '1') or (s[1] == '2' and s[2] != '2')\
                    or (s[1] == '3' and s[2] != '3') or (s[1] == '4' and s[2] != '4'):
                    print(s)
for s in range(1,5):
    num(s)


这样写出来 感觉繁琐 写出这段代码的时间都比我不用代码直接心算出来的时间多
写出来自己都看不太懂了

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

unmask 发表于 2022-5-11 19:40
你自己写出来都看不懂,那为啥要这么写呢?为啥不写一个自己看着舒服的解决方案呢?网址上的解决方案不是挺容易理解的吗?为啥不学习网站的写法,非要自己造一个自己都看不懂轮子呢?
a147888123 发表于 2022-5-11 19:44
我下了 发表于 2022-5-11 19:56
你这。。是字符串吧。。。而且,这是分割的啥???
ee789852 发表于 2022-5-11 20:03
是不是有not in 之类的语法啊??大佬们?
user999 发表于 2022-5-11 20:19
和我最开始一样,都把问题复杂化了。
你的思路还停留在把所有组合都输出,然后排除掉。
网址里那个办法,就是直接过滤掉不合格的,只显示合格的。
你这样理解:
[Python] 纯文本查看 复制代码
for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):

3层循环,最里面的k循环,实际是这样:

1 1 1
1 1 2
1 1 3
1 1 4
--------------下面是j循环
1 2 1
1 2 2
1 2 3
1 2 4
--------
1 3 1
1 3 2
1 3 3
1 3 4
1 3 1
1 4 2
1 4 3
1 4 4
---------------------->
[Python] 纯文本查看 复制代码
print(i,j,k)

不是打印的三位数,而是三个独立的数,里面用","号隔开了。共就是4*4*4,不是5*5*5.
你别想成这是 个十百,这就是3个独立数字。
------------
你不要把条件写的那么清楚,你要利用计算机的特点,就是傻算。
[Python] 纯文本查看 复制代码
## 答案:20只鸡,30只猫。
##  鸡和猫 一共50只,一共160条腿。鸡几只,猫几只?

for x in range(1, 51):
	if x * 2 + (50 - x) * 4 == 160:
		print("鸡有:", x)
		print("猫有:", 50 - x)

----------鸡猫同笼,我都怕你处理这个问题,要猫是M,鸡是J....
9992979 发表于 2022-5-11 20:19
看不懂,
平淡最真 发表于 2022-5-11 20:27
[Python] 纯文本查看 复制代码
from itertools import permutations
for i in permutations([1, 2, 3,4], 3):
    print(i)
king100 发表于 2022-5-11 20:31
我成功的被你绕晕了
a147888123 发表于 2022-5-11 21:06
本帖最后由 a147888123 于 2022-5-11 21:09 编辑

[Python] 纯文本查看 复制代码
# -*- coding: UTF-8 -*-

import copy
lista = [1, 2, 3, 4]
#先取四个数,当百位取一位后,十位从剩下得三个数取,个位从剩下得两个数取
listb = []
listc = []
for i in range(0, len(lista)):
    listb = copy.deepcopy(lista)
    #十位数组只能包含三位,必须删除百位取得数
    a = lista[i]
    del listb[i]
    for j in range(0, len(listb)):
        b = listb[j]
        listc = copy.deepcopy(listb)
        #个位数组只能包含两位,他从十位得数组而来,必须删除十位取得数
        del listc[j]
        for k in range(0, len(listc)):
            c = listc[k]
            print(a*100 + b*10+c)
[mw_shl_code=python,true]import copy
正常情况下,都是按例子写,但是想换个思路,结果坑爹了  就是想换个思路搞搞



您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 13:36

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表