精华内容
下载资源
问答
  • 100+Python编程题给你练(附答案)

    万次阅读 多人点赞 2019-03-31 16:28:08
    大家如果能坚持独立思考完成以下题目,一定可以帮大家轻松 get Python编程技能。目前,这个项目已经获得了 3994 Stars,2952 Forks。 Github 地址:Python-programming-exercises 首先,这 100+ 练习题根据难易...

     

    大家如果能坚持独立思考完成以下题目,一定可以帮大家轻松 get Python 的编程技能。目前,这个项目已经获得了 3994 Stars,2952 Forks。

    Github 地址:Python-programming-exercises

    首先,这 100+ 练习题根据难易程度分为三个等级:Level 1、2 和 3。下面对如何定义这三个 Level 进行了说明,大家可以结合自身的学习能力和实践经验进行选择。

    其次,本编程题是基于Python3,每题都有问题描述、提示和解决方案。大家一定要先独立完成,然后再看参考答案哈~

    前 25 题中,Q1~5、22~25 都是 Level 1 的难度,Q6~17 为 Level 2,Q18~22 为 Level 3。大家正好利用这五道题学习、巩固一下基础,然后就开始准备挑战自己吧!

    1.    等级描述
    Level 1:初级。是指刚刚通过Python入门课程的人。他可以用1或2个Python类或函数来解决一些问题。通常,答案可以直接在教科书中找到。
    Level 2:中级。是指刚刚学习了Python,但是已经有了较强的编程背景的人。他应该能够解决可能涉及3或3个Python类或函数的问题。答案不能直接在课本上找到。
    Level 3:高级。。他应该使用Python来解决更复杂的问题,使用更丰富的库函数、数据结构和算法。他应该使用几个Python标准包和高级技术来解决这个问题。
    2.    问题的模板
    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
    问题
    提示
    解决方案
    3.问题

    前 25 题中,Q1~5、22~25 都是 Level 1 的难度,Q6~17 为 Level 2,Q18~22 为 Level 3。

    100+Python编程题

    题1
    1级
    问题:编写一个程序,它将找到所有这些数字,可被7整除,但不是5的倍数,2000年至3200年(包括在内)。得到的数字应按逗号分隔的顺序打印在一行上。
    提示:考虑使用range(#begin, #end)方法

    解决方案:

    l=[]
    for i in range(2000, 3201):
        if (i%7==0) and (i%5!=0):
            l.append(str(i))
    
    print (','.join(l))

    题2
    1级
    问题:编写一个可以计算给定数的阶乘的程序。结果应该以逗号分隔的顺序打印在一行上。假设向程序提供以下输入:8
    则输出为:40320
    提示:在为问题提供输入数据的情况下,应该假设它是控制台输入。
    解决方案:

    def fact(x):
        if x == 0:
            return 1
        return x * fact(x - 1)
    print('请输入一个数字:')
    x=int(input())
    print (fact(x))

    题3
    1级
    问题:使用给定的整数n,编写一个程序生成一个包含(i, i*i)的字典,该字典包含1到n之间的整数(两者都包含)。然后程序应该打印字典。
    假设向程序提供以下输入:8
    则输出为:
    {1:1,2:4,3:9,4:16,5:25,6:36,,7:49,8:64}
    提示:在为问题提供输入数据的情况下,应该假设它是控制台输入。考虑使用dict类型()
    解决方案:

    print('请输入一个数字:')
    n=int(input())
    d=dict()
    for i in range(1,n+1):
        d[i]=i*i
    
    print(d)

    题4
    1级
    问题:编写一个程序,该程序接受控制台以逗号分隔的数字序列,并生成包含每个数字的列表和元组。假设向程序提供以下输入:
    34岁,67年,55岁,33岁,12日,98年
    则输出为:['34', '67', '55', '33', '12', '98']
                   ('34', '67', '55', '33', '12', '98')
    提示:在为问题提供输入数据的情况下,应该假设它是控制台输入。方法可以将列表转换为元组
    解决方案:

    import re
    print('请输入一组数字:')
    values=input()
    l=values.split(",")
    k=re.findall(r'[0-9]+',values)
    t=tuple(k)
    print (k)
    print (t)

    题5
    1级
    问题:定义一个至少有两个方法的类:        getString:从控制台输入获取字符串        printString::打印大写母的字符串。
    还请包含简单的测试函数来测试类方法。
    提示:使用_init__方法构造一些参数
    解决方案:

    class InputOutString(object):
        def __init__(self):
            self.s = ""
    
        def getString(self):
            print('请输入字符串:')
            self.s = input()
    
        def printString(self):
            print (self.s.upper())
    
    strObj = InputOutString()
    strObj.getString()
    strObj.printString()

    题6
    2级
    问题:
    编写一个程序,根据给定的公式计算并打印值:Q=\sqrt{[(2*C*D)/H]}。以下是C和H的固定值:C是50。H是30。D是一个变量,它的值应该以逗号分隔的序列输入到程序中。
    例子假设程序的输入序列是逗号分隔的:100,150,180,
    程序输出为:18,22,24
    提示:如果接收到的输出是小数,则应四舍五入到其最近的值(例如,如果接收到的输出是26.0,则应打印为26)。在为问题提供输入数据的情况下,应该假设它是控制台输入。
    解决方案:

    #!/usr/bin/env python
    import math
    c=50
    h=30
    value = []
    print('请输入一组数字:')
    items=[x for x in input().split(',')]
    for d in items:
        value.append(str(int(round(math.sqrt(2*c*float(d)/h)))))
    
    print (','.join(value))

    题7
    2级
    问题:编写一个程序,以2位数字,X,Y作为输入,生成一个二维数组。数组的第i行和第j列中的元素值应该是i*j。
    注意:i= 0,1 . .,X - 1;    j = 0, 1,­Y-1。
    例子假设程序有以下输入:3、5
    则程序输出为:[[0,0,0,0,0],[0,1,2,3,4],[0,2,4,6,8]]
    提示:注意:如果要为问题提供输入数据,应该假设它是一个控制台输入,以逗号分隔。
    解决方案:

    print('请输入两个数字:')
    input_str = input()
    dimensions=[int(x) for x in input_str.split(',')]
    rowNum=dimensions[0]
    colNum=dimensions[1]
    multilist = [[0 for col in range(colNum)] for row in range(rowNum)]
    
    for row in range(rowNum):
        for col in range(colNum):
            multilist[row][col]= row*col
    
    print (multilist)

    题8
    2级
    问题:编写一个程序,接受逗号分隔的单词序列作为输入,按字母顺序排序后按逗号分隔的序列打印单词。假设向程序提供以下输入:
    without,hello,bag,world
    则输出为:
    bag,hello,without,world
    提示:在为问题提供输入数据的情况下,应该假设它是控制台输入。
    解决方案:

    items=[x for x in input().split(',')]
    items.sort()
    print (','.join(items))
    

    题9
    2级
    问题:编写一个程序,接受一行序列作为输入,并在将句子中的所有字符大写后打印行。
    假设向程序提供以下输入:
    Hello world
    Practice makes perfect
    则输出为:
    HELLO WORLD
    PRACTICE MAKES PERFECT
    提示:在为问题提供输入数据的情况下,应该假设它是控制台输入。
    解决方案:

    lines = []
    while True:
        s = input()
        if s:
            lines.append(s.upper())
        else:
            break;
    
    for sentence in lines:
        print(sentence)

    题10
    2级
    问题:编写一个程序,接受一系列空格分隔的单词作为输入,并在删除所有重复的单词并按字母数字排序后打印这些单词。
    假设向程序提供以下输入:
    hello world and practice makes perfect and hello world again
    则输出为:
    again and hello makes perfect practice world
    提示:在为问题提供输入数据的情况下,应该假设它是控制台输入。
    我们使用set容器自动删除重复的数据,然后使用sort()对数据进行排序。
    解决方案:

    print('请输入一组字符串:')
    s = input()
    words = [word for word in s.split(" ")]
    print (" ".join(sorted(list(set(words)))))

    题11
    2级

    问题:编写一个程序,接受一系列逗号分隔的4位二进制数作为输入,然后检查它们是否可被5整除。 可被5整除的数字将以逗号分隔的顺序打印。
    例:
    0100,0011,1010,1001
    那么输出应该是:
    1010
    注意:假设数据由控制台输入。

    提示:如果输入数据被提供给问题,则应该假定它是控制台输入。

    解:

    value = []
    print('请输入逗号分隔的4位二进制数:')
    items=[x for x in input().split(',')]
    for p in items:
        intp = int(p, 2)
        # print(intp)
        if not intp%5:
            value.append(p)
    
    print (','.join(value))

    题12
    2级

    题:编写一个程序,它将找到1000到3000之间的所有这些数字(均包括在内),这样数字的每个数字都是偶数。
    获得的数字应以逗号分隔的顺序打印在一行上。

    提示:如果输入数据被提供给问题,则应该假定它是控制台输入。
    解:

    values = []
    for i in range(1000, 3001):
        s = str(i)
        if (int(s[0])%2==0) and (int(s[1])%2==0) and (int(s[2])%2==0) and (int(s[3])%2==0):
            values.append(s)
    print (",".join(values))

    题13
    2级

    题:编写一个接受句子并计算字母和数字的程序。假设为程序提供了以下输入:
    Hello world! 123
    然后,输出应该是:
    字母10
    数字3

    提示:如果输入数据被提供给问题,则应该假定它是控制台输入。

    解:

    print('请输入:')
    s = input()
    d={"DIGITS":0, "LETTERS":0}
    for c in s:
        if c.isdigit():
            d["DIGITS"]+=1
        elif c.isalpha():
            d["LETTERS"]+=1
        else:
            pass
    print ("LETTERS", d["LETTERS"])
    print ("DIGITS", d["DIGITS"])

    题14
    2级

    题:编写一个接受句子的程序,并计算大写字母和小写字母的数量。
    假设为程序提供了以下输入:
    Hello world!
    然后,输出应该是:
    大写实例 1
    小写实例 9

    提示:如果输入数据被提供给问题,则应该假定它是控制台输入。

    解:

    print('请输入:')
    s = input()
    d={"UPPER CASE":0, "LOWER CASE":0}
    for c in s:
        if c.isupper():
            d["UPPER CASE"]+=1
        elif c.islower():
            d["LOWER CASE"]+=1
        else:
            pass
    print ("UPPER CASE", d["UPPER CASE"])
    print ("LOWER CASE", d["LOWER CASE"])

    题15
    2级

    题:编写一个程序,计算a + aa + aaa + aaaa的值,给定的数字作为a的值。假设为程序提供了以下输入:
    9     然后,输出应该是: 11106

    提示:如果输入数据被提供给问题,则应该假定它是控制台输入。

    解:

    print('请输入一个数字:')
    a = input()
    n1 = int( "%s" % a )
    n2 = int( "%s%s" % (a,a) )
    n3 = int( "%s%s%s" % (a,a,a) )
    n4 = int( "%s%s%s%s" % (a,a,a,a) )
    print (n1+n2+n3+n4)

    题16
    2级

    题:使用列表推导来对列表中的每个奇数。 该列表由一系列逗号分隔的数字输入。
    假设为程序提供了以下输入:
    1,2,3,4,5,6,7,8,9
    然后,输出应该是:
    1,3,5,7,9

    解:

    print("输入:")
    values = input()
    numbers = [x for x in values.split(",") if int(x)%2!=0]
    print (",".join(numbers))

    题17
    2级

    题:编写一个程序,根据控制台输入的事务日志计算银行帐户的净金额。 事务日志格式如下所示:
    D 100
    W 200

    D表示存款,而W表示提款。
    假设为程序提供了以下输入:
    D 300
    D 300
    W 200
    D 100
    然后,输出应该是:
    500

    提示:如果输入数据被提供给问题,则应该假定它是控制台输入。

    解:

    netAmount = 0
    while True:
        print("请输入:")
        s = input()
        if not s:
            break
        values = s.split(" ")
        operation = values[0]
        amount = int(values[1])
        if operation=="D":
            netAmount+=amount
        elif operation=="W":
            netAmount-=amount
        else:
            pass
    print (netAmount)

    题18
    3级

    题:网站要求用户输入用户名和密码进行注册。编写程序以检查用户输入的密码的有效性。
    以下是检查密码的标准:
    1. [a-z]之间至少有1个字母
    2. [0-9]之间至少有1个数字
    1. [A-Z]之间至少有一个字母
    3. [$#@]中至少有1个字符
    4.最短交易密码长度:6
    5.交易密码的最大长度:12
    您的程序应接受一系列逗号分隔的密码,并将根据上述标准进行检查。将打印符合条件的密码,每个密码用逗号分隔。
    例:如果以下密码作为程序的输入:

    ABd1234@1,a F1#,2w3E*,2We3345
    然后,程序的输出应该是:

    ABd1234 @ 1

    提示:如果输入数据被提供给问题,则应该假定它是控制台输入。

    解:

    import re
    value = []
    print("请输入:")
    items=[x for x in input().split(',')]
    for p in items:
        if len(p)<6 or len(p)>12:
            continue
        else:
            pass
        if not re.search("[a-z]",p):
            continue
        elif not re.search("[0-9]",p):
            continue
        elif not re.search("[A-Z]",p):
            continue
        elif not re.search("[$#@]",p):
            continue
        elif re.search("\s",p):
            continue
        else:
            pass
        value.append(p)
    print (",".join(value))

    题19
    3级

    题:您需要编写一个程序,按升序对(名称,年龄,高度)元组进行排序,其中name是字符串,age和height是数字。 元组由控制台输入。 排序标准是:
    1:根据名称排序;
    2:然后根据年龄排序;
    3:然后按分数排序。
    优先级是name> age>得分。
    如果给出以下元组作为程序的输入:
    Tom,19,80
    John,20,90
    Jony,17,91
    Jony,17,93
    Json,21,85
    然后,程序的输出应该是:
    [('John','20','90'),('Jony','17','91'),('Jony','17','93'),('Json','21 ','85'),('Tom','19','80')]

    提示:如果输入数据被提供给问题,则应该假定它是控制台输入。我们使用itemgetter来启用多个排序键。

    解:

    from operator import itemgetter, attrgetter
    
    l = []
    print("请输入:")
    while True:
    
        s = input()
        if not s:
            break
        l.append(tuple(s.split(",")))
    
    print (sorted(l, key=itemgetter(0,1,2)))

    题20
    3级

    题:使用生成器定义一个类,该生成器可以在给定范围0和n之间迭代可被7整除的数字。

    提示:考虑使用yield。

    解:

    def putNumbers(n):
        i = 0
        while i<n:
            j=i
            i=i+1
            if j%7==0:
                yield j
    
    for i in putNumbers(100):
        print (i)

    题21
    3级
    机器人从原点(0,0)开始在平面中移动。 机器人可以通过给定的步骤向上,向下,向左和向右移动。 机器人运动的痕迹如下所示:
    UP 5
    DOWN 3
    LETF 3
    RIGHT 2
    方向之后的数字是步骤。 请编写一个程序来计算一系列运动和原点之后距当前位置的距离。如果距离是浮点数,则只打印最接近的整数。
    例:如果给出以下元组作为程序的输入:
    UP 5
    DOWN 3
    LETF 3
    RIGHT 2
    然后,程序的输出应该是:2
    提示:如果输入数据被提供给问题,则应该假定它是控制台输入。

    import math
    pos = [0,0]
    print("请输入:")
    while True:
        s = input()
        if not s:
            break
        movement = s.split(" ")
        direction = movement[0]
        steps = int(movement[1])
        if direction=="UP":
            pos[0]+=steps
        elif direction=="DOWN":
            pos[0]-=steps
        elif direction=="LEFT":
            pos[1]-=steps
        elif direction=="RIGHT":
            pos[1]+=steps
        else:
            pass
    
    print (int(round(math.sqrt(pos[1]**2+pos[0]**2))))

    题22
    3级

    题:编写一个程序来计算输入中单词的频率。 按字母顺序对键进行排序后输出。
    假设为程序提供了以下输入:

    New to Python or choosing between Python 2 and Python 3? Read Python 2 or Python 3.

    然后,输出应该是:

    2:2
    3.:1
    3?:1
    New:1
    Python:5
    Read:1
    and:1
    between:1
    choosing:1
    or:2
    to:1

    提示:如果输入数据被提供给问题,则应该假定它是控制台输入。

    freq = {}   # frequency of words in text
    print("请输入:")
    line = input()
    for word in line.split():
        freq[word] = freq.get(word,0)+1
    words = sorted(freq.keys())  #按key值对字典排序
    
    for w in words:
        print ("%s:%d" % (w,freq[w]))

    题23
    1级

    题:写一个可以计算数字平方值的方法

    提示: 使用**运算符

    def square(num):
        return num ** 2
    
    print (square(2))
    print (square(3))

    题24
    1级

    题:Python有许多内置函数,如果您不知道如何使用它,您可以在线阅读文档或查找一些书籍。 但是Python为每个内置函数都有一个内置的文档函数。
         请编写一个程序来打印一些Python内置函数文档,例如abs(),int(),raw_input()
         并为您自己的功能添加文档
        
    提示:内置文档方法是__doc__

    print(abs.__doc__)
    print(int.__doc__)
    print(input.__doc__)
    
    def square(num):
        '''Return the square value of the input number.
    
        The input number must be integer.
        '''
        return num ** 2
    
    print(square(2))
    print(square.__doc__)

    题25
    1级

    题:定义一个类,它具有类参数并具有相同的实例参数。

    提示:定义一个实例参数,需要在__init__方法中添加它。您可以使用构造参数初始化对象,也可以稍后设置该值

    class Person:
        # Define the class parameter "name"
        name = "Person"
    
        def __init__(self, name=None):
            # self.name is the instance parameter
            self.name = name
    
    jeffrey = Person("Jeffrey")
    print("%s name is %s" % (Person.name, jeffrey.name))
    
    nico = Person()
    nico.name = "Nico"
    print("%s name is %s" % (Person.name, nico.name))

     

    Python入门、提高学习网站链接:https://github.com/jackfrued/Python-100-Days?utm_source=wechat_session&utm_medium=social&utm_oi=931473721877651456

    刷Leetcode网站力扣https://leetcode-cn.com/problemset/all/

    Python进阶https://docs.pythontab.com/interpy/

    菜鸟教程:https://www.runoob.com/python/python-100-examples.html

    未完待续……

    展开全文
  • Python编程规范

    万次阅读 多人点赞 2020-10-09 22:40:55
    Python编程规范2. 检查工具3. 代码布局4. 表达式中的空格5. 命名规则6. 注释 1. Python编程规范   编程规范是体现职业素养的一部分,其重要性不言而喻。那我们应该遵循什么样的编程规范呢?   对于Python语言,...

    1. Python编程规范

      编程规范是体现职业素养的一部分,其重要性不言而喻。那我们应该遵循什么样的编程规范呢?

      对于Python语言,最常见的规范的PEP 8编程规范。

      从谷歌搜索输入栏中,输入Python Code Style,第一个就是PEP 8编程规范:https://www.python.org/dev/peps/pep-0008/,由于篇幅有限,本文只总结了部分最常用的编程规范,其他内容详解上述链接。

      如果是其他编程语言,如果没有官网直接推荐的编程规范(如PEP 8),则可沿用Google或Facebook的编程规范,搜索方式为Google Java Code Style。

    2. 检查工具

      pycodestyle,可通过pip install pycodestyle进行安装。

      执行方法:在命令行中输入pycodestyle code.py。

    3. 代码布局

    1. 每一级缩进使用4个空格(千万不要把空格和TAB混淆在一起,会直接报错)。
    2. 连续行通过分隔符进行对齐,如下面的例子都是以左括号进行对齐的。
    # Aligned with opening delimiter.
    # eg1
    foo = long_function_name(var_one, var_two,
                      var_three, var_four)
    
    
    # eg2
    foo_bar(self, width, height, color='black', design=None, x='foo',
          emphasis=None, highlight=0)
    
         if (width == 0 and height == 0 and
            color == 'red' and emphasis == 'strong'): 
    
    1. 每行最多字符数为79个,除了过长的import语句和注释中出现长的URL、路径名等。

      引申问题:如果出现语句过长的情况,正确的处理方式是两点:
      1. 将运算符放到下一行的开头。
      2. 以分割符进行对齐。

    def data_write(content, title):
        with open('./article' + title.replace('|', '').replace('?', '')
                  + '.txt', 'w', encoding='utf-8') as f:
            f.write(content)
    
    1. 插入空行
      • 顶层函数和类的定义,以两个空行隔开。
      • 类里的方法用一个空格隔开。
    2. import语句在分开的若干行,但from xxx import yyy, zzz也是可以的
        import os 
        import sys
    

      Python文件中的顺序:注释->import语句->常量->函数(类)定义

      通配符的导入要尽量避免,如from xxx import *

    4. 表达式中的空格

    1. 在逗号、冒号之后添加空格,但是切片操作中的冒号后面不跟空格。
    2. 在二元运算符(包括赋值=)前后添加空格,但出现在函数中的默认参数(=)不加空格。

    其中二元运算符包括:

        赋值(=)
        增量赋值(+=, -=)
        比较(==, >=, <=, >, <, !=, in, not in, is, is not)
        布尔(and, or, not)
    
    1. 如果一个表达式中包括不同优先级的运算符,则高优先级的运算不加空格。
    x = x*2 - 1
    hypot2 = x*x + y*y
    c = (a+b) * (a-b)
    

    5. 命名规则

    1. 不要担心过长的命名变量。
    2. 避免重复使用变量名表示不同的对象。
    3. 不能使用内建函数(built-in functions)的名称来命名新的函数或者变量。
    4. 避免使用l、O、I这三个单个字母来命名。
    5. 命名约定:
      module_name, package_name, ClassName, method_name, ExceptionName, function_name, GLOBAL_CONSTANT_NAME, global_var_name, instance_var_name, function_parameter_name, local_var_name.

    6. 注释

      使用英文来写注释(除非特殊情况),注释应当是完整的句子,首个字母应当是大写。

      注释的类型:

    • 块注释(块注释的每一行都以#和一个空格开头,在Jupyter Notebook中的快捷键是ctrl+/)
    • 行注释(对该行代码进行注释,至少在代码两个空格以后添加)
    • 文档注释(分为单行和多行,多行文档注释的结尾符号"""是在最后,并且是另起一行的)

      为了更好的理解注释,我们可以参考requests库的api.py中的注释写法(其中r"""是为了在注释中添加反斜杠/):

      下面是常用的requests的代码片段:

    # -*- coding: utf-8 -*-
    
    """
    requests.api
    ~~~~~~~~~~~~
    This module implements the Requests API.
    :copyright: (c) 2012 by Kenneth Reitz.
    :license: Apache2, see LICENSE for more details.
    """
    
    from . import sessions
    
    
    def request(method, url, **kwargs):
        """Constructs and sends a :class:`Request <Request>`.
        :param method: method for the new :class:`Request` object: ``GET``, ``OPTIONS``, ``HEAD``, ``POST``, ``PUT``, ``PATCH``, or ``DELETE``.
        :param url: URL for the new :class:`Request` object.
        :param params: (optional) Dictionary, list of tuples or bytes to send
            in the query string for the :class:`Request`.
        :param data: (optional) Dictionary, list of tuples, bytes, or file-like
            object to send in the body of the :class:`Request`.
        :param json: (optional) A JSON serializable Python object to send in the body of the :class:`Request`.
        :param headers: (optional) Dictionary of HTTP Headers to send with the :class:`Request`.
        :param cookies: (optional) Dict or CookieJar object to send with the :class:`Request`.
        :param files: (optional) Dictionary of ``'name': file-like-objects`` (or ``{'name': file-tuple}``) for multipart encoding upload.
            ``file-tuple`` can be a 2-tuple ``('filename', fileobj)``, 3-tuple ``('filename', fileobj, 'content_type')``
            or a 4-tuple ``('filename', fileobj, 'content_type', custom_headers)``, where ``'content-type'`` is a string
            defining the content type of the given file and ``custom_headers`` a dict-like object containing additional headers
            to add for the file.
        :param auth: (optional) Auth tuple to enable Basic/Digest/Custom HTTP Auth.
        :param timeout: (optional) How many seconds to wait for the server to send data
            before giving up, as a float, or a :ref:`(connect timeout, read
            timeout) <timeouts>` tuple.
        :type timeout: float or tuple
        :param allow_redirects: (optional) Boolean. Enable/disable GET/OPTIONS/POST/PUT/PATCH/DELETE/HEAD redirection. Defaults to ``True``.
        :type allow_redirects: bool
        :param proxies: (optional) Dictionary mapping protocol to the URL of the proxy.
        :param verify: (optional) Either a boolean, in which case it controls whether we verify
                the server's TLS certificate, or a string, in which case it must be a path
                to a CA bundle to use. Defaults to ``True``.
        :param stream: (optional) if ``False``, the response content will be immediately downloaded.
        :param cert: (optional) if String, path to ssl client cert file (.pem). If Tuple, ('cert', 'key') pair.
        :return: :class:`Response <Response>` object
        :rtype: requests.Response
        Usage::
          >>> import requests
          >>> req = requests.request('GET', 'https://httpbin.org/get')
          >>> req
          <Response [200]>
        """
    
        # By using the 'with' statement we are sure the session is closed, thus we
        # avoid leaving sockets open which can trigger a ResourceWarning in some
        # cases, and look like a memory leak in others.
        with sessions.Session() as session:
            return session.request(method=method, url=url, **kwargs)
    
    
    def get(url, params=None, **kwargs):
        r"""Sends a GET request.
        :param url: URL for the new :class:`Request` object.
        :param params: (optional) Dictionary, list of tuples or bytes to send
            in the query string for the :class:`Request`.
        :param \*\*kwargs: Optional arguments that ``request`` takes.
        :return: :class:`Response <Response>` object
        :rtype: requests.Response
        """
    
        kwargs.setdefault('allow_redirects', True)
        return request('get', url, params=params, **kwargs)
    
    
    def options(url, **kwargs):
        r"""Sends an OPTIONS request.
        :param url: URL for the new :class:`Request` object.
        :param \*\*kwargs: Optional arguments that ``request`` takes.
        :return: :class:`Response <Response>` object
        :rtype: requests.Response
        """
    
        kwargs.setdefault('allow_redirects', True)
        return request('options', url, **kwargs)
    
    
    def head(url, **kwargs):
        r"""Sends a HEAD request.
        :param url: URL for the new :class:`Request` object.
        :param \*\*kwargs: Optional arguments that ``request`` takes. If
            `allow_redirects` is not provided, it will be set to `False` (as
            opposed to the default :meth:`request` behavior).
        :return: :class:`Response <Response>` object
        :rtype: requests.Response
        """
    
        kwargs.setdefault('allow_redirects', False)
        return request('head', url, **kwargs)
    
    
    def post(url, data=None, json=None, **kwargs):
        r"""Sends a POST request.
        :param url: URL for the new :class:`Request` object.
        :param data: (optional) Dictionary, list of tuples, bytes, or file-like
            object to send in the body of the :class:`Request`.
        :param json: (optional) json data to send in the body of the :class:`Request`.
        :param \*\*kwargs: Optional arguments that ``request`` takes.
        :return: :class:`Response <Response>` object
        :rtype: requests.Response
        """
    
        return request('post', url, data=data, json=json, **kwargs)
    
    
    def put(url, data=None, **kwargs):
        r"""Sends a PUT request.
        :param url: URL for the new :class:`Request` object.
        :param data: (optional) Dictionary, list of tuples, bytes, or file-like
            object to send in the body of the :class:`Request`.
        :param json: (optional) json data to send in the body of the :class:`Request`.
        :param \*\*kwargs: Optional arguments that ``request`` takes.
        :return: :class:`Response <Response>` object
        :rtype: requests.Response
        """
    
        return request('put', url, data=data, **kwargs)
    
    
    def patch(url, data=None, **kwargs):
        r"""Sends a PATCH request.
        :param url: URL for the new :class:`Request` object.
        :param data: (optional) Dictionary, list of tuples, bytes, or file-like
            object to send in the body of the :class:`Request`.
        :param json: (optional) json data to send in the body of the :class:`Request`.
        :param \*\*kwargs: Optional arguments that ``request`` takes.
        :return: :class:`Response <Response>` object
        :rtype: requests.Response
        """
    
        return request('patch', url, data=data, **kwargs)
    
    
    def delete(url, **kwargs):
        r"""Sends a DELETE request.
        :param url: URL for the new :class:`Request` object.
        :param \*\*kwargs: Optional arguments that ``request`` takes.
        :return: :class:`Response <Response>` object
        :rtype: requests.Response
        """
    
        return request('delete', url, **kwargs)
    

    下节课内容:Python基本语法,参考链接为https://wiki.python.org/moin/BeginnersGuide或者https://www.runoob.com/python/python-basic-syntax.html。

    展开全文
  • python编程求n的阶乘Before we start implementing factorial using Python, let us first discuss what factorial of a number implies. 在开始使用Python实现阶乘之前,让我们首先讨论数字阶乘的含义。 ...

    python编程求n的阶乘

    Before we start implementing factorial using Python, let us first discuss what factorial of a number implies.

    在开始使用Python实现阶乘之前,让我们首先讨论数字阶乘的含义。

    Theoretically, the factorial of a number is defined as the product of all positive integers less than or equal to the number. Certainly, ‘n!’ represents the factorial of an integer ‘n’. As an example, let us look at the factorial of the number 6,

    从理论上讲,数字的阶乘定义为所有小于或等于该数字的正整数的乘积。 当然, “ n!” 代表整数'n'的阶乘。 例如,让我们看一下数字6的阶乘

    6! = 6 * 5 * 4 * 3 * 2 * 1

    6! = 6 * 5 * 4 * 3 * 2 * 1

    The following techniques could be followed to determine the factorial of an integer.

    可以遵循以下技术确定整数的阶乘。

    1. Using Loop

      使用循环
    2. Using Recursive function call

      使用递归函数调用
    3. Using predefined function ‘factorial()’ from the math module

      使用数学模块中的预定义函数'factorial()'

    在Python中使用循环 (Using Loop in Python)

    The below-mentioned code illustrates how we can calculate the factorial of a given number using for loop in Python programming.

    下面提到的代码说明了如何在Python编程中使用for 循环来计算给定数字的阶乘。

    
    n=9
    fact=1
    for i in range(2,n+1):
        fact=fact*i
    print("The factorial of ",n," is: ",fact)
    

    Output:

    输出:

    
    The factorial of 9 is: 362880
    

    在Python中使用递归函数调用 (Using Recursion function call in Python)

    Similarly, we can also calculate the factorial of a given number using a Recursive function. Let us see how

    同样,我们也可以使用递归函数来计算给定数字的阶乘。 让我们看看

    
    n=9
    def fact(n):
        if(n==1 or n==0):
            return 1
        else:
            return n*fact(n-1)
    
    print("The factorial of ",n," is: ",fact(n))
    

    Output

    输出量

    
    The factorial of 9 is: 362880
    

    For a clear understanding of functions and recursion, one can refer to

    为了清楚地了解函数递归 ,可以参考

    Python Function and Arguments
    Python Recursion Function

    Python函数和参数
    Python递归函数

    在Python中使用Math模块中的factorial()方法 (Using the factorial() method from the math module in Python)

    The math module provides a simple way to calculate the factorial of any positive integer. Certainly, the module comes with a pre-defined method ‘factorial()’ which takes in the integer as an argument and returns the factorial of the number. Let’s take a look at how we can use the pre-defined method and consequently find the factorial. The code given below depicts how the method ‘factorial()‘ can be used

    数学模块提供了一种简单的方法来计算任何正整数的阶乘。 当然,该模块带有预定义的方法'factorial()' ,该方法将整数作为参数并返回数字的阶乘。 让我们看一下如何使用预定义方法并因此找到阶乘。 下面给出的代码描述了如何使用方法' factorial() '

    
    import math
    n=9
    print("The factorial of ",n," is: ",math.factorial(n))
    

    Output:

    输出:

    
    The factorial of 9 is: 362880
    

    Furthermore, in the case of all of the above-mentioned techniques, we have used a pre-defined value of the integer ‘n’. Also making ‘n’ a user input is possible. This could be easily achieved by substituting the line ‘n=9’ with:

    此外,在所有上述技术的情况下,我们使用了整数“ n”预定义 也可以使用户输入为“ n” 。 通过将行“ n = 9”替换为:

    
    n=int(input("Enter the number for calculating factorial"))
    

    The Python input function is covered in further detail in one of our previous articles.

    我们之前的一篇文章进一步详细介绍了Python输入函数

    References:

    参考文献:

    https://stackoverflow.com/questions/5136447/function-for-factorial-in-python

    https://stackoverflow.com/questions/5136447/function-for-factorial-in-python

    https://stackoverflow.com/questions/20604185/find-the-best-way-for-factorial-in-python

    https://stackoverflow.com/questions/20604185/find-the-best-way-for-factorial-in-python

    翻译自: https://www.journaldev.com/34688/factorial-using-python-programming

    python编程求n的阶乘

    展开全文
  • 在手机上玩python编程-Pydroid3

    万次阅读 多人点赞 2020-12-02 08:37:00
    手机屏幕太少,写代码不方便,建议用电脑学习python有时候,就是不想正襟危坐的坐在电脑前面,想要在手机上轻量级的写点代码。安卓软件推荐Pydroid.3Pydroid 3免费高级版...

    手机屏幕太少,写代码不方便,建议用电脑学习python

    有时候,就是不想正襟危坐的坐在电脑前面,想要在手机上轻量级的写点代码。

    安卓软件推荐

     

     Pydroid.3

     Pydroid 3免费高级版app是一款安卓手机上的开发利器,离线Python 3.7解释器:运行Python程序不需要Internet。

     QPython


    这是一款能够在安卓手机上运行Python的软件,你可以在地铁上、公交车上甚至在无聊的会议上随时随地练习Python。

     Termux

    Android 手机系统是基于 Linux 内核的,所以可以使用终端类软件去进入」手机的内核。

    termux这个软件还是很强大的,不仅仅是可以运行python,linux上能用的大部分也都能用,

    相关软件打包下载

     

      

    下载地址

    链接:https://pan.baidu.com/s/1819849hJ1yhiWtJ3tvSwSw 

    提取码:h31g  

    python各种编辑器、APP、软件下载

    Pydroid3说明

    Pydroid 3 介绍
    接下来了解一下Pydroid 3这个堪称是Android上最易用且功能最强大的Python 3 IDE。

    01 软件特性
     

    • 离线Python 3.7解释器:运行Python程序不需要Internet。

    • Pip包管理器和预构建的轮包的自定义存储库,用于增强科学库,例如numpy,scipy,matplotlib,scikit-learn和Jupyter。

    • 开箱即用的示例,可以更快地学习。

    • 完整的Tkinter支持GUI。

    • 全功能终端仿真器,支持readline(以pip提供)。

    • Cython支持。

    • pygame_sdl2支持(基于SDL2的pygame实现)。

    02 编辑特性
     

    • 代码预测,自动缩进和实时代码分析,就像在任何真正的IDE中一样。

    • 扩展键盘栏,包含您在Python中编程所需的所有符号。

    • 语法高亮显示和主题。

    • 单机行号进行断点调试。

    看到这里,童鞋们有没有心动呢?尤其是对于numpy,scipy,matplotlib,scikit-learn等科学库的支持,真的让小编很激动啊

    03 pydroid 下载地址

    链接:https://pan.baidu.com/s/1_9glOr_I5KELQNHHVGyqUA

    提取码:4c3z

     

    Pydroid3安装与使用

    安装好PyDroid后,打开APP,会自动安装Python3,稍等一下,就可以测试python是否正常工作。

    1. 测试python功能


    在中间输入框输入测试代码:

    print("Hello World")
    


    注意括号()和双引号""要使用英文输入法下面标点符号来输入,不然会报错,

    以后再手机上Code的时候也要注意这点。


    输入代码完成后,点击右下角的黄色按钮就可以运行,如果无误的话会有
    Hello World 的输出


    3. 使用python
    可以写python程序了



    点右上文件夹样的图标,选择保存,就可以讲源文件保存到手机内存里了。然后点右下角的那个三角形按钮就可以运行程序了。有简单的编辑功能,但自然比不上PC里的IDE啦。


    现在再来看看左上那个菜单里的选项


    第一个是python命令行解释器,可以交互式运行python程序。


    点左上的白色箭头或者输入exit()就返回了。

    第二项是打开一个linux终端



    示例里有很多范例程序,甚至还能写安卓界面程序,这个大家感兴趣可以自行尝试。


    最后再来看看作图,先写一个绘图程序。
     


    运行


    并没有图像出现。我想到一个变通的方法:把图象保存到文件里再手动打开。


    再运行,手机内存里就多了个"hello.png"的文件,打开

     

    4.依赖库安装
    点击右上角会显示更多菜单,选择Pip选项,可以在QUICK INSTALL找到常用的库,点击INSTALL就可以安装了,安装的时候要稍等一下(速度的确比较慢,大家需要耐心等待下),等提示安装完成时再退出界面。
    首先可以先安装常用的包:
    numpy,pandas,cython,scipy。

    推荐在线编程地址

    在线编程:http://520mg.com/it/#/code

    在线学习: 免费在线学编程

    学 Python ≠ 100G 视频资料

    学 Python ≠ 傻瓜式的在线填空题

    只有多写实操项目,才能学的高效。只有建立自己的知识体系,才能学的踏实。

    更多好文

    亲,需要你的“分享”“在看”

    IT入门 感谢关注

    程序员题库→

    程序员用的单词表→

    练习地址:http://520mg.com/it/#/code

    展开全文
  • 小白趣味学Python编程

    千人学习 2020-11-28 02:40:27
    Python开发的入门课程,本套课程介绍Python语言的... 楼房一层一层盖,知识一点一点学,刚接触Python的同学一定先要把基础打好,本套课程非常适合小白 新手 学习Python编程。不啰嗦直接讲干货。      
  • 这篇文章主要为大家介绍了十条建议,可以帮你提高Python编程效率的10条,想要提升提高Python编程效率的朋友不要错过 程序员的时间很宝贵,Python这门语言虽然足够简单、优雅,但并不是说你使用Python编程,效率就...
  • Python编程语言学习:python编程语言中重要函数讲解之map函数等简介、使用方法之详细攻略 目录 python编程语言中重要函数讲解之map函数等简介、使用方法之详细攻略 map函数 (1)、遍历所有字符串列表中最...
  • python编程入门

    千次阅读 2017-12-11 10:02:26
    python编程入门,搭建python编程环境,配置python环境,在ide里面实现python的hello world1.python环境https://www.python.org/downloads/release/python-363/下载对应版本的python环境包下载完成之后,按照提示安装...
  • 14张思维导图带你征服Python编程

    万次阅读 多人点赞 2020-11-07 10:00:19
    提取码:98dv IEEE Spectrum 杂志(美国电气电子工程师学会出版的旗舰杂志)发布了一年一度的编程语言排行榜,这也是他们发布的第四届编程语言 Top 榜。...本文主要涵盖了 Python 编程的核心知识(暂不包括标准库及
  • Python编程识别手势数字

    千次阅读 多人点赞 2021-06-04 21:23:33
    Python编程识别手势数字 谷歌出了一个开源的、跨平台的、可定制化的机器学习解决方案工具包,给在线流媒体(当然也可以用于普通的视频、图像等)提供了机器学习解决方案。感兴趣的同学可以打开这个网址了解详情:...
  • 黑客与逆向工程师的Python编程之道

    千次下载 热门讨论 2014-03-14 00:42:20
    灰帽子 黑客与逆向工程师的Python编程之道
  • Python编程从入门到实践

    万次阅读 多人点赞 2019-07-18 16:54:35
    Python编程从入门到实践 全配套资源免费分享 博主的百度云分享:点击保存下载Python编程从入门到实践全配套资源 提取码:efej 下载之后成功解压后的文件(见下图): 解释一下:没有把这些资源上传到CSDN资源,...
  • 图解Python编程神器Jupyter Notebook

    千人学习 2020-05-18 17:45:04
    【1】详细讲解鼎鼎大名的Python编程神器Jupyter Notebook。 【2】Jupyter Notebook看似简单,实际上功能非常强大,而且有很多实用的小技巧。 【3】遗憾的是,目前市面上还没有一个详细讲解Jupyter Notebook的视频...
  • 手机最强 Python 编程神器,Android、IOS 都可以!

    万次阅读 多人点赞 2021-04-02 08:38:43
    阅读文本大概需要 5分钟 start 送工具 python软件(32位,64位) Python编辑器...今天给大家分享一个可以在手机上进行Python编程的神器~ 手机编程软件有很多,大部分都很难使用,操作不灵活,甚...
  • Python编程从入门到实践(基础入门)

    万次阅读 多人点赞 2019-05-31 19:13:42
    Python编程从入门到实践 1、Python中的变量 变量名:大小写英文,数字和下划线的组合,不能以数字开头 2、Python首字母大写使用title()方法,全部大写upper()方法,全部小写lower()方法 name=‘ce shi ...
  • python开发软件有哪些?Python编程软件

    万次阅读 多人点赞 2018-04-12 15:33:16
    Python开发软件可根据其用途不同分为两种,一种是Python代码编辑器,一种是Python集成开发工具,两者的配合使用可以极大的提高Python开发人员的编程效率,以下是常用的几款Python代码编辑器和Python集成开发工具。...
  • 环境搭建 环境搭建分为四个部分: 一、Java环境 二、Minecraft游戏 三、bukkit服务器 四、Python环境
  • python编程思维导图

    千次阅读 多人点赞 2017-12-08 18:23:05
    基础知识图一包括了基本规则、Python语言特点、计算机语言、如何运行Python、变量赋值五个方面,辅助你快速掌握Python编程的基底知识。 第二张图 基础知识图二包含了模块结构、布局、IO编程流程、标识符、Python...
  • Python编程思想【系列文章】

    千次阅读 2020-05-20 08:13:10
    李宁老师已经在「极客起源」 微信公众号推出《Python编程思想》电子书,囊括了Python的核心技术,以及Python的主要函数库的使用方法。读者可以在「极客起源」 公众号中输入160442开始学习,或点击「极客起源」公众号...
  • python编程更加丝滑的一些小技巧

    千次阅读 2020-09-30 00:38:08
    文章目录10个python编程的小技巧字符串逆序将序列内容赋值给多个变量itertools自适应UnpackingEnumerateSlice类对列表的相邻元素进行分组使用next()来迭代生成器CounterDequeue结语 10个python编程的小技巧   ...
  • python 编程实例

    千次阅读 2018-05-27 21:31:35
    1.python编程实例实现目的使用多线程写入文件;使用多线程锁保护共享的数据,同一时间只能有一个线程来修改共享的数据;判断文件是否存在,不存在文件的话,创建文件开始写入,存在的话增加数据;重写write方法,...
  • python编程从入门到实践 配套资源下载地址 免费!

    万次阅读 多人点赞 2019-08-04 16:49:15
    python编程从入门到实践》书中有一些需要配套资源的,比如12章需要飞船图像ship.bmp和外星人图像,16章需要从网上下载天气数据。这些资源如果从论坛下载有点麻烦,要注册和积分的。 其实可以直接在书店下载全书...
  • 树莓派Python编程到底是什么?

    千次阅读 2019-08-19 17:12:50
    在学习Python编程的过程中,大家可能会接触到一个叫做树莓派的东西,那这个树莓派是什么呢?为什么要用它来做Python编程? 树莓派是个用来学习编程的优秀设备,它可以理解多种语言。第一,它很便宜。价格差不多只有...
  • Python编程基础01:搭建Python开发环境

    万次阅读 多人点赞 2020-11-02 16:26:21
    文章目录一、下载Python3.9 一、下载Python3.9 官网:https://www.python.org/
  • Python的IDE:利用MyEclipse2017软件的PyDev插件实现Python编程 目录 下载PyDev插件 加载PyDev插件 下载PyDev插件 网址:http://www.pydev.org/updates/ 利用MyEclipse2017软件的PyDev...
  • NLP之情感分析:基于python编程(jieba库)实现中文文本情感分析(得到的是情感评分)之全部代码 目录 全部代码 相关文章 NLP之情感分析:基于python编程(jieba库)实现中文文本情感分析(得到的是情感评分) NLP...
  • 在VeloView中进行Python编程

    千次阅读 2018-03-29 19:08:01
    VeloView与Python编程入门级介绍 VeloView是Velodyne提供的开源点云可视化与数据分析记录软件,其中提供了基于ParaView的Python 2.7编程接口,这里仅进行一点简单的介绍 VeloView与Python编程入门级介绍 如何...
  • python编程软件有哪些?

    万次阅读 2018-10-31 11:42:21
    Python开发软件可根据其用途不同分为两种,一种是Python代码编辑器,一种是Python集成开发工具,两者的配合使用可以极大的提高Python开发人员的编程效率,以下是常用的几款Python代码编辑器和Python集成开发工具。...
  • 我的Python编程体验总结

    千次阅读 2016-04-10 21:29:52
    我的Python编程体验总结@(进阶)[Python,Python学习,Python编程总结] 为什么标题起为体验呢,原因是我在学Python后还没有真正意义上用在项目上。我想也只有这个词最合适了。我的Python编程体验总结,1. 还是从缘说起 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 739,321
精华内容 295,728
关键字:

python编程

python 订阅