少儿编程python题库和答案(python少儿编程入门)

http://www.itjxue.com  2023-03-27 12:48  来源:未知  点击次数: 

求Python三位水仙花数OJ题和答案

print(str([i?for?i?in?range(100,1000)?if?(i%10)**3+(i//10%10)**3+(i//100)**3?==?i])[1:-1])

一行代码带走

如果不想要最后的换行,则用下面这句

print(str([i?for?i?in?range(100,1000)?if?(i%10)**3+(i//10%10)**3+(i//100)**3?==?i])[1:-1],end='')

Python编程题求助

该答案为组合数学中著名的卡特兰数,其通式为C(2n,n)-C(2n,n-1)

这里采用递推关系求解,即动态规划的方法

设n对父子有d[n]种出场策略,注意初值d[0]=1

因为每个孩子前面必有一个父亲与之对应

对于i对父子,遍历第j个孩子,该孩子前面有j-1个孩子,对应d[j-1]种出场策略

后面有i-j个孩子,对应d[i-j]种出场策略,则d[i]+=d[j-1]*d[i-j],最终d[n]即为所求

python代码如下:

n = int(input())

d = [0] * (n+1)

d[0] = 1

for i in range(n+1):

? for j in range(i+1):

? ? ? d[i] += d[j-1] * d[i-j]

print(d[n])

运行结果如下:

望采纳~

33 关 Python 游戏,测试你的爬虫能力到底及格不?

作者 | 苏克1900

责编 | 胡巍巍

本文经授权转载自高级农民工

最近在网上看到一个非常有意思的 Python 游戏 通关网站,一共有 33 关,每一关都需要利用 Python 知识解题找到答案,然后进入下一关。

很考验对 Python 的综合掌握能力,比如有的闯关需要用到正则表达式,有的要用到爬虫。

我们平常学 Python 都是按章节顺序、包或者模块来学,容易前学后忘。正好可以拿这个网站来综合测试一下对 Python 的掌握情况,以便查缺补漏。

来说说这个网站怎么玩。

mark

这是网站主页面,很有 历史 感对吧,诞生了已有十几年了。但千万不要因为看着像老古董而小瞧它。

mark

我们来玩玩看,点击「get challenged」开始挑战。

第 0 关是 Warming up 热身环节:

这一关要求是修改 URL 链接,给的提示是电脑上的数学表达式:2 的 38 次方,所以大概就是需要计算出数值,然后修改url 进入下一关。

所以这关就是考 Python 的基本数值运算,你知道怎么算么?

打开 Python 自带终端,一行代码就能计算出结果:

mark

把原链接中的 0 替换为 274877906944 回车就会进入下一关:

mark

游戏 这就正式开始了。图片中的笔记本给了三组字母,很容易发现规律:前面的字母往后移动两位就是后面的字母。

那么需要做的就是根据这个规律把下面的提示字符串,做位移解密得到真正的句子含义:

这道题考察字符串编码和 for 循环相关知识,代码实现如下:

得到结果:

作者很风趣,当然不能手动去一个推算了,推荐用 string.maketrans 这个方法解决,我们上面采取的是比较直接的方法,官方给出了更为精简的方法:

然后把 url 中的 map 改为ocr回车就来到了第 2 关:

mark

作者接着说过关的提示可能在书里(当然不可能了)也可能在网页源代码里。那就右键查看源代码往下拉看到绿色区域,果然找到了问题:

mark

意思就是:要在下面这一大串字符里找到出现次数最少的几个字符

考察了这么几个知识点:

如果是你,你会怎么做?

来看下,十行代码快速实现:

首先,用 Requests 请求网页然后用正则提取出字符串,接着 for 循环计算每个字符出现的次数。

可以看到出现次数最少的就是最后几个字符,合起来是「equality」,替换 url 字符就闯过过了第 2 关进入下一关继续挑战。是不是有点意思?

后面每一关都需要用到相关的 Python 技巧解决,比如第 4 关:

mark

这一关作者弄了个小恶作剧,需要手动输入数值到 url 中然后回车,你以为这样就完了么?并没有它有会不断重复弹出新的数值让你输入,貌似无穷尽。

所以,这一关肯定不能采取手动输入的方法闯关,自然要用到 Python 了。要实现自动填充修改 url 回车跳转到新 url,循环直到网页再也无法跳转为止这一功能。

如果是你,你会怎么做?

其实,一段简单的爬虫加正则就能搞定。思路很简单,把每次网页中的数值提取出来替换成新的 url 再请求网页,循环下去,代码实现如下:

输出结果如下:

可以看到,最终循环了 85 次找到了最后一个数字16044,输入到 url 中就闯关成功。

33 关既有趣又能锻炼使用 Python 解决问题的技巧,感兴趣的话去玩玩看。

网址:

如果遇到不会做的题,可以在这里找到参考答案:

中参考文教程:

官方参考教程:

作为码一代,想教码二代却无从下手:

听说少儿编程很火,可它有哪些好处呢?

孩子多大开始学习比较好呢?又该如何学习呢?

最新的编程教育政策又有哪些呢?

下面给大家介绍CSDN新成员: 极客宝宝(ID: geek_baby)

热 文 推 荐

?“年薪百万程序员遭亲妈拍卖”刚刚刷爆朋友圈!网友:是我本人!

? 真壕!腾讯员工平均月薪 7 万!

? 高级!程序员用递归来撩妹?!| 程序员有话说

?厉害!女学生偷师男子学校,变身区块链开发工程师

?这家公司的 IoT ,你可千万别低估!

?深扒! 币安被盗的7074.18枚比特币去哪了?

?如何使用「番茄法」高效的写算法题?

?面对互联网一线大厂,这些技术你需要了解!

?刺激!华为程序员年薪200万 ?真相让人心酸!

你点的每个“在看”,我都认真当成了喜欢

Python爬虫期末试题(编程题答案)

from seleniumimport webdriver

import time

from selenium.webdriverimport ActionChains

driver = webdriver.Chrome()

driver.get("")

# 点击密码登录

driver.find_element_by_class_name('account-tab-account').click()

# 定位账户 # 输入内容

driver.find_element_by_id('username').send_keys('2331566038')

driver.find_element_by_id('password').send_keys('*********')

# 点击登录

driver.find_element_by_link_text('登录豆瓣').click()

# 进入内嵌滑动验证页面

iframe = driver.find_element_by_id('tcaptcha_iframe')

driver.switch_to_frame(iframe)

element = driver.find_element_by_xpath('//*[@id="tcaptcha_drag_thumb"]')

ActionChains(driver).click_and_hold(on_element=element).perform()

ActionChains(driver).move_to_element_with_offset(to_element=element,xoffset=180,yoffset=0).perform()

driver.save_screenshot('豆瓣.png')

time.sleep(5)

driver.quit()

import urllib.request

import urllib.parse

url =""

word = {"wd":"浙江大学"}

word = urllib.parse.urlencode(word)

new_url = url +"?" + word

header = {

"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36"

}

resquest = urllib.request.Request(new_url,headers = header,)

response = urllib.request.urlopen(resquest)

html = response.read().decode('utf-8')

print(html)

python 编程 求答案!2、3两题

#!/usr/bin/env?python

#coding=utf-8

import?re

from?datetime?import?datetime?as?dt,?timedelta

import?platform

if?platform.python_version()[:1]?==?'2':?#判断python版本是2还是3

????import?sys

????reload(sys)

????sys.setdefaultencoding('utf8')

class?Idcard(object):

????'''?

?????m?=?Idcard('225122198611134730')

?????print(m.sex)

????男

?????m.birth

????'1986-11-13'

?????m.age

????30

????'''

????def?__init__(self,idcard):

????????self.idcard?=?idcard????????

????????if?len(idcard)?==?15:

????????????sex,?birth?=?idcard[-1:],?'19'?+?idcard[6:12]

????????elif?len(idcard)?==?18:

????????????sex,?birth?=?idcard[-2:-1],?idcard[6:14]???

????????else:

????????????raise?Exception('len(idcard)?is?{}?(15/18)'.format(len(idcard)))

????????self._sex?=?int(sex)?%?2

????????self._birth?=?birth

????

????@property

????def?sex(self):

????????return?u'男'?if?self._sex?%?2?else?u'女'

????@property

????def?age(self):??

????????now,?bir?=?dt.now(),?dt.strptime(self._birth,?'%Y%m%d')

????????beforebirth?=?(now?-?dt(now.year,?bir.month,?bir.day)).days??0

????????return?dt.now().year?-?int(self._birth[:4])?-?beforebirth

????@property

????def?birth(self):

????????return?dt.strptime(self._birth,?'%Y%m%d').strftime('%Y-%m-%d')

def?alignment(str1,?space,?align?=?'left'):

????length?=?len(str1.encode('gb2312'))

????space?=?space?-?length?if?space?=length?else?0

????if?align?==?'left':

????????str1?=?str1?+?'?'?*?space

????elif?align?==?'right':

????????str1?=?'?'*?space?+str1

????elif?align?==?'center':

????????str1?=?'?'?*?(space?//2)?+str1?+?'?'*?(space?-?space?//?2)

????return?str1

????

def?main():

????fname?=?'customer.txt'

????'''

????with?open(fname,?'w')?as?f:

????????f.write("""

????????郑文杰?225122198611134730

????????文萍?225122198912094740

????????郑妈妈??225122590303476

????????郑爸爸?225122560506471

????????""")

????'''????

????newf?=?'ourcustomers.txt'

????with?open(fname)?as?f:

????????s?=?f.readlines()

????L,?newL?=?[re.split(r'\s+',?i.strip())?for?i?in?s],?[]

????for?i?in?L:

????????if?len(i)?==?2:

????????????g?=?Idcard(i[1])

????????????newL.append('{}{}{}'.format(

????????????????alignment(i[0],?10),?alignment(g.sex,?8),?g.age))

????with?open(newf,?'w')?as?f:

????????f.write('\n'.join(newL))

????print('\n'.join(newL[:100]))

????print('Customer?data?has?been?write?into?{}'.format(newf))

if?__name__?==?'__main__':

????import?doctest

????doctest.testmod()

????main()

(责任编辑:IT教学网)

更多

推荐综合特效文章