精华内容
下载资源
问答
  • 大学it python程序设计满分作业 (3) 豆瓣电影排名前250 保存为xlsx格式 爬虫 import requests, bs4, openpyxl # 创建工作薄 wb=openpyxl.Workbook() # 获取工作薄的活动表 sheet=wb.active # 工作表重命名 ...

    大学it python程序设计满分作业 (3)
    豆瓣电影排名前250 保存为xlsx格式
    爬虫

    import requests, bs4, openpyxl
    
    # 创建工作薄
    wb=openpyxl.Workbook()  
    # 获取工作薄的活动表
    sheet=wb.active 
    # 工作表重命名
    sheet.title='movies' 
    
    sheet['A1'] ='序号'       # 加表头,给A1单元格赋值
    sheet['B1'] ='电影名'     # 加表头,给B1单元格赋值
    sheet['C1'] ='评分'      # 加表头,给C1单元格赋值
    sheet['D1'] ='推荐语'    # 加表头,给D1单元格赋值
    sheet['E1'] ='链接'     # 加表头,给E1单元格赋值
    
    headers={'user-agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'}
    for x in range(10):
        url = 'https://movie.douban.com/top250?start=' + str(x*25) + '&filter='
        res = requests.get(url, headers=headers)
        bs = bs4.BeautifulSoup(res.text, 'html.parser')
        bs = bs.find('ol', class_="grid_view")
        for titles in bs.find_all('li'):
            num = titles.find('em',class_="").text
            title = titles.find('span', class_="title").text
            comment = titles.find('span',class_="rating_num").text
            url_movie = titles.find('a')['href']
    
            if titles.find('span',class_="inq") != None:
                tes = titles.find('span',class_="inq").text
                sheet.append([num, title, comment, tes, url_movie])
                # 把num, title, comment, tes和url_movie写成列表,用append函数多行写入Excel
                print(num + '.' + title + '——' + comment + '\n' + '推荐语:' + tes +'\n' + url_movie)
            else:
                sheet.append([num, title, comment, None,url_movie])
                print(num + '.' + title + '——' + comment + '\n' +'\n' + url_movie)
    
    # 最后保存并命名这个Excel文件
    wb.save('movieTop2501.xlsx')
    

    爬取电影名,评分,推荐语,播放链接相关信息,并分别保存为xlsx格式

    小白一枚,希望能跟大佬交流

    展开全文
  • Python 终止线程

    千次阅读 2021-01-29 04:33:52
    = 1: # """if it returns a number greater than one, you're in trouble, # and you should call it again with exc=NULL to revert the effect""" ctypes.pythonapi.PyThreadState_SetAsyncExc(tid, None) raise ...

    import time

    from threading import Thread

    import inspect

    import ctypes

    def _async_raise(tid, exctype):

    """Raises an exception in the threads with id tid"""

    if not inspect.isclass(exctype):

    raise TypeError("Only types can be raised (not instances)")

    res = ctypes.pythonapi.PyThreadState_SetAsyncExc(ctypes.c_long(tid), ctypes.py_object(exctype))

    if res == 0:

    raise ValueError("invalid thread id")

    elif res != 1:

    # """if it returns a number greater than one, you're in trouble,

    # and you should call it again with exc=NULL to revert the effect"""

    ctypes.pythonapi.PyThreadState_SetAsyncExc(tid, None)

    raise SystemError("PyThreadState_SetAsyncExc failed")

    def stop_thread(thread):

    _async_raise(thread.ident, SystemExit)

    def func(name):

    time_count = 0

    for i in range(10):

    time.sleep(1)

    time_count = time_count + 1

    print(f"{name} {time_count}秒")

    def func2(name, t1):

    time_count = 0

    for i in range(10):

    time.sleep(1)

    time_count = time_count + 1

    if time_count == 4:

    stop_thread(t1)

    print(f"{name} {time_count}秒")

    # def func2():

    # i1 = InnerFunc()

    # i1.func("类")

    class InnerFunc():

    def func(self, name):

    time_count = 0

    for i in range(10):

    time.sleep(1)

    time_count = time_count + 1

    print(f"Class {name} {time_count}秒")

    if __name__ == '__main__':

    # lines = inspect.getsourcelines(func2)

    # print(lines)

    print("-"*100)

    t1 = Thread(target=func, args=("线程1",))

    t2 = Thread(target=func2, args=("线程2击杀", t1))

    t2.setDaemon(True)

    t1.start()

    t2.start()

    # t_class.start()

    # time.sleep(4)

    # stop_thread(t1)

    print("主线程结束")

    展开全文
  • python函数精确更改won'

    2021-01-26 20:02:55
    我的任务是:where the input target_amount is a single non-negative integer value and the input L is a list of positive ... Then, exact_change should return either True or False: it should return...

    我的任务是:where the input target_amount is a single non-negative integer value and the input L is a list of positive integer values. Then, exact_change should return either True or False: it should return True if it’s possible to create target_amount by adding up some-or-all of the values in L. It should return False if it’s not possible to create target_amount by adding up some-or-all of the values in L.

    For example, L could represent the coins you have in your pocket and target_amount could represent the price of an item – in this case, exact_change would tell you whether or not you can pay for the item exactly.

    Here are a few examples of exact_change in action. Notice that you can always make change for the target value of 0, and you can never make change for a negative target value: these are two, but not all, of the base cases!

    我写的函数是:def exact_change( target_amount, L ):

    if target_amount > sum(L):

    return False

    elif target_amount == 0:

    return True

    elif target_amount < 0:

    return False

    elif target_amount > 0 and L==[]:

    return False

    elif target_amount == L:

    return True

    else:

    loseit = exact_change(target_amount, L[1:])

    useit = exact_change(target_amount, L[0])

    return loseit or useit'

    结果必须是:

    ^{pr2}$

    但我的结果是:TypeError: 'int' object is not iterable

    请帮帮我!我错过了什么?在

    展开全文
  • ros用Python程序控制moveit机器人运动-正向运动学(一)笔者工作环境:ros-kineticuniversal_robot功能包在进行此工作之前,我相信读者可以通过运行demo程序,在rviz-moveit中可以通过拖动机械臂的末端简单实现机器人...

    ros用Python程序控制moveit机器人运动-正向运动学(一)

    笔者工作环境:

    ros-kinetic

    universal_robot功能包

    在进行此工作之前,我相信读者可以通过运行demo程序,在rviz-moveit中可以通过拖动机械臂的末端简单实现机器人的控制,然而我们在控制机械臂运动的时候大都是通过编程的方式控制,而不是Rviz的图形化控制。

    本教程以ur3机械臂模型为例,首先看一下 正向运动学规划的例程,正向运动学规划简单的说就是直接给机械臂提供所有关节的目标角度从而实现的机械臂运动。

    1.创建好工作空间和已经将universal_robot功能包拷贝到src文件夹下

    创建工作空间和拷贝universal_robot功能包不在赘述,参考我其他的博文。

    ros-新建ros工作空间与环境变量配置

    ros+ur机械臂+robotiq ft300+onrobot rg2+gazebo+rviz联合仿真

    这里将universal_robot功能包的地址放在这里。

    https://github.com/ros-industrial/universal_robot.git

    编译成功后已经完成了第一步工作,此时src下应该有这样功能包。

    e8afc0d07e1d0f694a61340bc6bd082d.png

    2.在src文件目录下创建功能包

    可以参考我的另一篇博客

    ros创建工作空间和功能包

    在src文件夹目录下打开终端,输入:

    catkin_create_pkg test_ur

    注:因为创建的功能包没有添加依赖,所以后边只跟了功能包的名字。

    然后再进行编译

    cd ..

    catkin_make

    3.在创建的test_ur功能包的文件夹目录下创建Python程序。

    在test_ur文件目录下创建空的Python程序,打开终端输入:

    touch moveit_cartesian_demo.py

    将代码拷贝到Python程序中去。

    注:本例程中,无论机械臂在什么位置,都将先初始化到home中的位置,然后在运行。这一点可以通过读代码看到。

    #!/usr/bin/env python

    # -*- coding: utf-8 -*-

    import rospy, sys

    import moveit_commander

    from moveit_commander import MoveGroupCommander

    from geometry_msgs.msg import Pose

    from copy import deepcopy

    class MoveItCartesianDemo:

    def __init__(self):

    # 初始化move_group的API

    moveit_commander.roscpp_initialize(sys.argv)

    # 初始化ROS节点

    rospy.init_node('moveit_cartesian_demo', anonymous=True)

    # 是否需要使用笛卡尔空间的运动规划,获取参数,如果没有设置,则默认为True,即走直线

    cartesian = rospy.get_param('~cartesian', True)

    # 初始化需要使用move group控制的机械臂中的arm group

    arm = MoveGroupCommander('manipulator')

    # 当运动规划失败后,允许重新规划

    arm.allow_replanning(True)

    # 设置目标位置所使用的参考坐标系

    arm.set_pose_reference_frame('base_link')

    # 设置位置(单位:米)和姿态(单位:弧度)的允许误差

    arm.set_goal_position_tolerance(0.001)

    arm.set_goal_orientation_tolerance(0.001)

    # 设置允许的最大速度和加速度

    arm.set_max_acceleration_scaling_factor(0.5)

    arm.set_max_velocity_scaling_factor(0.5)

    # 获取终端link的名称

    end_effector_link = arm.get_end_effector_link()

    # 控制机械臂先回到初始化位置

    arm.set_named_target('home')

    arm.go()

    rospy.sleep(1)

    # 获取当前位姿数据最为机械臂运动的起始位姿

    start_pose = arm.get_current_pose(end_effector_link).pose

    # 初始化路点列表

    waypoints = []

    # 如果为True,将初始位姿加入路点列表

    if cartesian:

    waypoints.append(start_pose)

    # 设置路点数据,并加入路点列表,所有的点都加入

    wpose = deepcopy(start_pose)#拷贝对象

    wpose.position.z -= 0.2

    if cartesian: #如果设置为True,那么走直线

    waypoints.append(deepcopy(wpose))

    else: #否则就走曲线

    arm.set_pose_target(wpose) #自由曲线

    arm.go()

    rospy.sleep(1)

    wpose.position.x += 0.15

    if cartesian:

    waypoints.append(deepcopy(wpose))

    else:

    arm.set_pose_target(wpose)

    arm.go()

    rospy.sleep(1)

    wpose.position.y += 0.1

    if cartesian:

    waypoints.append(deepcopy(wpose))

    else:

    arm.set_pose_target(wpose)

    arm.go()

    rospy.sleep(1)

    wpose.position.x -= 0.15

    wpose.position.y -= 0.1

    if cartesian:

    waypoints.append(deepcopy(wpose))

    else:

    arm.set_pose_target(wpose)

    arm.go()

    rospy.sleep(1)

    #规划过程

    if cartesian:

    fraction = 0.0 #路径规划覆盖率

    maxtries = 100 #最大尝试规划次数

    attempts = 0 #已经尝试规划次数

    # 设置机器臂当前的状态作为运动初始状态

    arm.set_start_state_to_current_state()

    # 尝试规划一条笛卡尔空间下的路径,依次通过所有路点

    while fraction < 1.0 and attempts < maxtries:

    #规划路径 ,fraction返回1代表规划成功

    (plan, fraction) = arm.compute_cartesian_path (

    waypoints, # waypoint poses,路点列表,这里是5个点

    0.01, # eef_step,终端步进值,每隔0.01m计算一次逆解判断能否可达

    0.0, # jump_threshold,跳跃阈值,设置为0代表不允许跳跃

    True) # avoid_collisions,避障规划

    # 尝试次数累加

    attempts += 1

    # 打印运动规划进程

    if attempts % 10 == 0:

    rospy.loginfo("Still trying after " + str(attempts) + " attempts...")

    # 如果路径规划成功(覆盖率100%),则开始控制机械臂运动

    if fraction == 1.0:

    rospy.loginfo("Path computed successfully. Moving the arm.")

    arm.execute(plan)

    rospy.loginfo("Path execution complete.")

    # 如果路径规划失败,则打印失败信息

    else:

    rospy.loginfo("Path planning failed with only " + str(fraction) + " success after " + str(maxtries) + " attempts.")

    rospy.sleep(1)

    # 控制机械臂先回到初始化位置

    arm.set_named_target('home')

    arm.go()

    rospy.sleep(1)

    # 关闭并退出moveit

    moveit_commander.roscpp_shutdown()

    moveit_commander.os._exit(0)

    if __name__ == "__main__":

    try:

    MoveItCartesianDemo()

    except rospy.ROSInterruptException:

    pass

    保存文件并右击属性,将文件权限改为可执行程序

    此时我们已经完成了代码创建工作。

    然后再返回src文件夹目录下编译一次。

    4.运行程序

    在第一个终端输入一下代码启动demo.launch。

    roslaunch ur3_moveit_config demo.launch

    在第二个终端输入以下代码启动我们刚刚创建的Python程序。

    rosrun test_ur moveit_cartesian_demo.py

    这时候我们看到在demo中的机械臂可以运动了,沿着直线运动。

    cd50b640a32e4e05680e001c838e6f21.png

    问题与解决办法:

    在进行编译和运行Python程序过程中遇到很多问题,我都将放到我的博客里了,可以看一下。

    rosrun命令运行Python找不到可执行文件https://blog.csdn.net/weixin_45839124/article/details/106793803

    rosrun运行Python程序提示有语法错误问题(一)https://blog.csdn.net/weixin_45839124/article/details/106794474

    rosrun运行Python程序报错SyntaxError(二)https://blog.csdn.net/weixin_45839124/article/details/106797739

    本文参考链接:

    MoveIt编程实现关节空间机械臂运动(正运动学)https://blog.csdn.net/zzu_seu/article/details/90611186

    展开全文
  • python安装包时报错:PackagesNotFoundError: The following packages are not available from current channels1、报错内容2、当前方法不可行,我们按以下操作试一下 1、报错内容 输入内容: conda install network...
  • Python

    2020-12-22 11:41:05
    简介Python是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用。它的...
  • 接下来,python培训的小编就来给大家说一说,非IT行业学习python有什么用? 现在很多使用python的人都是非Python专业人士,学Python编程知识可以帮助解决一些问题,如网络爬虫,当我们需要采集数据的时候使用它就...
  • 问题描述 ImportError: dlopen: cannot load any more object with static TLS ...Contents of /usr/local/lib/python3.6/site-packages/sklearn/__check_build: _check_build.cpython-36m-x86_64-linu
  • 想要安装ros-kinetic下的joint-state-controller包,弹出错误: -----------------------------------------------------------------...ros-kinetic-moveit-commander : Depends: python-pyassimp but it is not goi..
  • python

    千次阅读 2020-12-30 10:08:53
    摘要 腾兴网为您分享:怎么用python进行加法运算...360魔法摄像头,局座直播,杭州市民卡网站,拆弹专家,我的世界超级工具,北京律师管理平台等软件it资讯,欢迎关注腾兴网。我们都知道:python是一门功能强大编程语...
  • awesome-python(python集合框架)

    千次阅读 2021-08-17 13:19:20
    今天我们就介绍这个系列中的Python:awesome-python,它是由 vinta 发起维护的 Python 资源列表。 awesome-python 包括了Web 框架、网络爬虫、网络内容提取、模板引擎、数据库、数据可视化、图片处理、文本处理、...
  • Python简介

    2021-03-06 05:46:48
    Python 简介Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python的设计具有很强的可读性,相比其他语言经用使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构...
  • python 负数

    千次阅读 2020-12-19 06:37:24
    python基础知识python_1Python解释器CPythonC语言开发的Python解释器,最广泛IPython一个交互式、功能增强的CPythonPypyPython语言写的Python解释器,JIT技术,动态编译Python代码Jpython...文章技术小阿哥2017-10-...
  • 成功解决ERROR: Could not build wheels for bottleneck, which is required to install pyproject.toml-based projects 目录 解决问题 ... Get it with "Microsoft C++ Build Tools": https://vi.
  • IT选Java还是Python?就业发展有何区别?来源:奇酷学院 发表于:2018-09-27 10:14:35想了解一个语言就业到底好不好,得先明确语言的发展方向。很多学员在选择专业上遇着难题,不少打算进入互联网的学员询问,是学...
  • 资源名称:Python物理学高效计算(完整版高清带目录)内容简介:本书介绍了如何通过Python自动化地完成物理领域方面的研究。全书共分为4个部分,以Python代码为示例向读者介绍了如何用Python解决物理项目中出现的各种...
  • 尤其是从事Java的人员,很多人都想要转行学习Python,那么Java转行学Python难不难?其实相对于来说是比较简单的,也是非常快速的毕竟自身具有一定的基础。Java和Python之间有何区分呢?从几方面为大家介绍一下。从语法...
  • 作者CSDN:进击的西西弗斯 ...版权声明:本文为作者原创文章,未经...开发环境:Python3.8(Pycharm编辑器),全流程通过代码实现 爬取时间:2021/10/24 晚上9:13 的实时招聘信息数据 爬取职位及城市:共9个职位,.
  • Python 3.10 和 Python 3.9 之间的差异

    千次阅读 多人点赞 2021-11-29 13:54:38
    在过去的几十年里,Python 在编程或脚本语言领域为自己创造了一个名字。python 受到高度青睐的主要原因是其极端的用户友好性。Python 还用于处理复杂的程序或编码挑战。机器学习 (ML)、人工智能 (AI) 和数据科学等...
  • Python运行pyqt5 时报错"it could not find or load the Qt platform plugin “windows” 如下图: 可能是你pyqt5没有安装 直接安装即可。 pip install pyqt5 我是这样解决的
  • python capitalize

    千次阅读 2020-12-23 17:20:44
    ubuntu下python环境默认时候python已经安装,只需在默认路径下编写脚本,如p1.py#!/usr/bin/pythonimport strings=string.capitalize('use modules ')print s然后退回Shell,输入python p1.py即可输入结果'use ...
  • 资源名称:Python视频教程之入门基础篇资源目录:【IT教程网】320b96cae58124db5fb6e7c5df99aefc【IT教程网】699434136852f34ec720f2a34ac6bce2【IT教程网】82f224bad6117932f4a7322dfc294ecd【IT教程网】998259c2cb...
  • python所在路径

    千次阅读 2020-12-18 18:32:48
    Python 获取当前路径的方法Python2.7 中获取路径的各种方法sys.path模块搜索路径的字符串列表。由环境变量PYTHONPATH初始化得到。sys.path[0]是调用Python解释器的当前脚本所在的目录。sys.argv一个传给Python脚本的...
  • docker部署python3笔记

    2021-11-24 12:29:23
    docker run -d --name mypython -p 8022:22 -v /automl:/workspace/automl -it python:latest /bin/bash 参数说明: -v 挂载和同步目录,这样docker里就有一个automl文件夹与 容器内workspace/automl文件夹同步; 2...
  • Rust与Python:为什么Rust可以取代Python

    千次阅读 2021-03-24 20:26:18
    我们将讨论每种情况下的适用用例,回顾使用Rust与Python的优缺点,并说明为什么Rust可能会取代Python。 我将介绍以下内容: 什么是Rust? 什么是Python? 何时使用Rust 何时使用Python 为什么Rust可以取代Python ...
  • python 长整数

    2021-02-04 05:12:39
    Python 的整数与 Numpy 的数据溢出某位 A 同学发了我一张截图,问为何结果中出现了负数?看了图,我第一感觉就是数据溢出了。数据超出能表示的最大值,就会出现奇奇怪怪的结果。然后,他继续发了张图,内容是 print...
  • Python随想

    2021-02-04 09:31:10
    花了一段时间,断断续续地啃完了Python核心编程与Python学习手册两本书。囫囵吞栆式地读完,不敢说有多懂,至少也入了个门。起初想学习Python,是因为接触到了LAMP,其中的P可以是Python,Perl,Php中的一个。上网查了...
  • 获取python速度

    2021-01-13 19:13:57
    Python获取IP地址对应的地理位置信息!开发工具Python版本:3.6.4相关模块:IPy模块;argparse模块;requests模块;以及一些Python自带的模块。环境搭建安装Python并添加到环境变量,pip安装需要的相关模块即可。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 515,370
精华内容 206,148
关键字:

itpython

python 订阅
友情链接: fingkai.zip