少儿编程python题库和答案(python少儿编程入门)
求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()