ParisGabriel 发表于 2018-7-17 00:44

【Python】人工智能全栈工程师(0基础到精通)教程 第十七课

本帖最后由 ParisGabriel 于 2018-7-17 00:47 编辑





补发的



ParisGabriel感谢 大家的支持                                全部课程 原文地址 :                                                                           http://www.cnblogs.com/ParisGabriel/tag/Python/
 https://images2018.cnblogs.com/blog/1430617/201807/1430617-20180709225751471-608583048.png                                                       https://attach.52pojie.cn/forum/201807/10/010120qq61dzx7sozu9s9s.png

                    每天坚持手写一天一篇 点个订阅吧决定坚持几年 全栈工程师(包含:python、爬虫、Web、人工智能、h5等)       讲完接着 java、黑客攻防 、渗透、                                                               易语言(比较简单学完python基本就会了)、等等到时候再说....IT无止境!   灰常感谢    当个死粉也阔以https://static.52pojie.cn/static/image/smiley/default/mad.gifhttps://static.52pojie.cn/static/image/smiley/default/mad.gif                      
                                                                              Python人工智能从入门到精通






                       week summer   exercises:
                    

一周练习题
复制代码
# # 练习:
# #   已知有列表:
# #   L =
# #   1) 用索引和切片等操作,将原列表改变为:
# #   L =

L =
L
L =
print(L)

#################################################################

# #   2) 将列表反转,删除最后一个元素后打印此列表
# #      ...
# #      print(L)#

L =
L.reverse()
del L[-1]
print(L)
#################################################################

# #      练习:
# #   1. 写程序,让用户输入一些整数,当输入-1时结束输入,将这些数存于列表L中
# #   1)打印用户共输入了几个数?
# #   2)打印您输入的数的最大数是多少
# #   3)打印您输入的数的最小数是多少
# #   4)打印您输入的这些数的平均值是多少?

L = []
while True:
    a = int(input("please input -1 over :"))
    if a == -1:
      break
    L.append(a)
    print(len(L))
    print(max(L))
    print(min(L))
    print(sum(L) / len(L))
#################################################################

# # 练习:
# #   输入多行文字,存入列表中,
# #   每次输入回车后算一行
# #   任意输入多行,当输入回车(即输入空行时结束输入)
# #   1) 按原输入内容在屏幕上输出内容
# #   2) 打印出您共输入了多少行文字
# #   3) 打印出您共输入了多少个字符

L = []
i = 0
while True:
    a = input("please input '' over:")
    if a == "":
      break
    L.append(a)
    i += len(a)

for x in L:
    print(x)
print(len(L))
print(i)

#################################################################

# 练习:
#   1. 有字符串"hello"
#   请用此字符串生成:
#       'h e l l o' 和 'h-e-l-l-o'
#   答案:
#       s = "hello"
#       a = ' '.join(s)# a = 'h e l l o'
# #       b = '-'.join(s)# b = 'h-e-l-l-o'

a = "hello"
print(" ".join(a))
print("-".join(a))
#################################################################

# #   2. 写一个程序,让用户输入很多正整数,当输入小于零的数时结束输入,
# #   1) 打印这些数中最大的一个数
# #   2) 打印这些数中第二大的一个数
# #   3) 删除最小的一个数
# #   4) 打印剩余数的和

L = []
while True:
    a = int(input("please input -1 over:"))
    if a < 0:
      break
    L.append(a)
L.sort()
print(max(L))
print(L)
del L[-1]
print(sum(L))

#################################################################

# # 练习:
# #   用列表推导式生成1~100内奇数的列表
# #   结果是:

# #   L =

L =
#################################################################

# #   示例:
# #   生成1~00内的奇数的列表:
# #   L =

L =
#################################################################

# # 练习:
# #   生成一个数值为 1 ~ 9的平方的列表,去掉所有的奇数的平方
# #   L =

L =
#################################################################

# #   # L =
# #   练习:
# #   1. 已知有一个字符串
# #      s = '100,200,300,500,800'
# #      将其转化为整数的列表存于L列表中
# #      L =

s = '100,200,300,500,800'
L = []
for x in s:
    L.append(s)
print(L)

#################################################################

# #   2. 生成前40个斐波那契数(Fibonacci)
# #       11235813.....
# #       要求将这些数保存在列表中
# #       打印这些数

L =
while True:
    a = L + L
    L.append(a)
    if len(L) == 40:
      break
print(L)
#################################################################

# #   3. 有一些数存于列表中:
# #   L =
# #   将列表中出现的数字存入到另一个列表L2中
# #       要求: 重复出现多次的数字在L2列表中只保留一份(去重)

L =
L2 = []
for x in L:
    if x not in L2:
      L2.append(x)
print(s)
#################################################################

# #       写程序,实现以下要求:
# #   1) 将如下数据形成一个字典seasons:
# #   '键'    '值'
# #      1      '春季有1, 2, 3月'
# #      2      '夏季有4, 5, 6月'
# #      3      '秋季有7, 8, 9月'
# #      4      '冬季有10,11,12月'
# #   2) 让用户输入一个整数,代表一个季度,
# # 打印这个季度对应的信息,如果用户输入的信息不在字典内,则打印信息不存在

d = {1: '春季有1, 2, 3月',
      2: '夏季有4, 5, 6月',
      3: '秋季有7, 8, 9月',
      4: '冬季有10,11,12月'}
a = int(input("please input :"))
for x in d:
    if a == x:
      print(d)
else:
    print("no")
#################################################################

# # 练习:
#   输入一段字符串,打印出这个字符串中出现过的字符的出现次数
#   如:
#   输入:
#       abcdabcaba
#   打印:
#       a: 4次
#       b: 3次
#       d: 1次
#       c: 2次
#   注:
#      不要求打印的顺序

a = input("please input string:")
d = {}
for x in a:
    if x in d:
      d += 1
    else:
      d = 1
for i in d:
    print(i, d)
#################################################################

# #      练习:
# #   有字符串的列表如下:
# #   L = ['tarena', 'xiaozhang', 'tyke']
# #   用上述列表生成如下字典:
# #       d = {'tarena': 6, 'xiaozhang': 9, 'tyke':4}
# #   注:
# #       字典的值为键的长度

L = ['tarena', 'xiaozhang', 'tyke']
d = {x: len(x) for x in L}
print(d)
#################################################################

# #       练习:
# #   1. 已知有两个等长的列表 list1和 list2
# #   以list1中的元素为键,以list2中的元素为值,生成相应的字典
# #   list1 =
# #   list2 = ['Tom', 'Jerry', 'Spike', 'Tyke']
# #   生成的字典为:
# #   {1001: 'Tom', 1002:'Jerry', .....}

list1 =
list2 = ['Tom', 'Jerry', 'Spike', 'Tyke']
d = {list1: list2 for x in range(len(list1))}
print(d)
#################################################################

# 集合练习:
#   经理有: 曹操,刘备,孙权
#   技术员有: 曹操,孙权,张飞,关羽
#   用集合求:
#   1) 即是经理,也是技术员的有谁?
#   2) 是经理,但不是技术员的人员都有谁?
#   3) 是技术员,不是经理的都有谁
#   4) 张飞是经理吗?
#   5) 身兼一职的人都有谁?
#   6) 经理和技术员共有几个人?

L = {"曹操", '刘备', "孙权"}
L1 = {"曹操", "孙权", "张飞", "关羽"}
print(L & L1)
print(L - L1)
print(L1 - L)
if "张飞" in L:
    print("yes")
else:
    print("no")
print(L1 ^ L)
print(len(L1 | L))

#################################################################

# 练习:
#   任意输入一些数字,存于列表L中。当输入负数时结束输入
#   1) 打印这些数的和
#   2) 打印这些数有多少种(去重)
#   3) 除重复的数字后,打印这些剩余数字的和

#   提示,可以用集合去重

L = []
while True:
    a = int(input("please input integer:"))
    if a < 0:
      break
    L.append(a)
print(sum(L))
s = {x for x in L}
print(len(s))
print(sum(s))

#################################################################

#   练习:
#   1. 写一个函数myadd, 此函数中的参数列表里有两个参数x, y
#   此函数的功能是打印 x + y 的和

#   def myadd(....):
#         ....# 注: .... 部是是我们要填写代码的地方

    # myadd(100, 200)# 300
    # print("ABC", "123")# ABC123


def myadd(x, y):
    print(x + y)
myadd(100, 200)
print("ABC", "123")

#################################################################


# #   2. 写一个函数 mysum, 传入一个参数x代表终止整数,
# #      打印出 1 + 2 + 3 + 4 + ..... + x的和
# #   def mysum(x):
# #         ....

def mysum(x):
    i = 0
    for x in range(x + 1):
      i += x
    print(i)
mysum(100)
mysum(4)
#################################################################

# # 练习:
# #   1. 写一个函数 mymax, 给函数传递两个参数,返回两个实参中最大的一个
# #   def mymax(a, b):
# #          ....

#   v = mymax(100, 200)
#   print('v =', v)# v = 200
#   print(mymax('ABC', 'abc'))# abc

def mymax(a, b):
    if a > b:
      return a
    else:
      return b
v = mymax(100, 200)
print('v =', v)
print(mymax('ABC', 'abc'))
#################################################################

# #   2. 写一个函数 input_number
# #       def input_number():
# #         ....
# #       此函数用来获取用户循环输入的整数,当用户输入负数时结束输入。
# #       将用户输入的数字以列表的形式返回,再用内建函数max, min,
# #       sum取出户输入的最大值,最小值及和
# #       L = input_number()
# #       print(L)# 打印此列表
# #       print("用户输入的最大数是:", max(L))
# #       print("用户输入的最小数是:", min(L))
# #       print("用户输入的数的和是:", sum(L))

def input_number():
    L = []
    while True:
      number = int(input("please input:"))
      if number < 0:
            break
      L.append(number)
    return L
L = input_number()
print(L)# 打印此列表
print("用户输入的最大数是:", max(L))
print("用户输入的最小数是:", min(L))
print("用户输入的数的和是:", sum(L))
#################################################################

# # 练习:
# #    1. 写一个函数 print_odd, 打印从begin开始,到end结束(不包含end)内的全部的奇数
# #       def print_odd(begin, end):
# #         ....

def print_odd(begin, end):
    for x in range(begin, end):
      if x % 2 == 1:
            print(x)
print_odd(1, 10)

print_odd(10, 20)

#################################################################

# #    2. 定义两个函数:
# #       sum3(a, b, c) 用于返回三个数的和
# #       pow3(x)用于返回x的三次方
# #       用以上函数计算:
# #         1. 计算1的立方 + 2的立方 + 3的立方的和
# #         即:1**3 + 2**3 + 3**3的和
# #         2. 计算1 + 2 + 3 的和的立方,
# #         即:(1+2+3)**3

def sum3(a, b, c):
    return a + b + c
def pow3(x):
    return x ** 3
sum3(pow3(1), pow3(2),pow3(3))
pow3(sum3(1, 2, 3))
#################################################################

#练习:
#   写一个函数minmax(a, b, c)有三个参数,这回这三个参数中的最小值和最大值,
#   要求,形成元组,最小值在前,最大值在后,如:

#   def minmax(a, b, c):
#       ...
#   t = minmax(11, 33, 22)
#   print(t)# (11, 33)# <<< 打印元组
#   xiao, da = minmax(6, 5, 4)
# #   print('最小值:', xiao, '最大值:', da)

def minmax(a, b, c):
    z = a
    if z < b:
      z = b
    if z < c:
      z = c
    x = a
    if x > b:
      x = b
    if x > c:
      x = c
    return (x, z)
t = minmax(11, 33, 22)
print(t)
xiao, da = minmax(6, 5, 4)
print('最小值:', xiao, '最大值:', da)

#################################################################

# # 练习:
# #   写一个函数 myadd, 此函数可以计算两个数的和,也可以计算三个数的和

# #   def myadd(......):
# #      ....
# #   print(myadd(10, 20))# 30
# #   print(myadd(100, 200, 300))# 600

def myadd(a, *args):
    for x in args:
      a += x
    return a
print(myadd(100, 200))
print(myadd(100, 200, 300))


#################################################################

# #   2. 写一个函数,print_odd, 此函数可以传递一个实参,也可以传递两个实参,当传递一个实参时代表结束值
# #   当传递两个实参时,第一个实参代表起始值,第二个实参代表结束值
# #      打印出以此区间内的全部奇数,不包含结束数:

# #   print_odd(10)# 1 3 5 7 9
# #   print_odd(11, 20)# 11 13 15 17 19   

def print_odd(a, b=None):
    for x in range(a, b):
      if x % 2 != 0:
            print(x)

print_odd(10)
print_odd(11, 20)
#################################################################

# #   练习:
# #   写一个函数, mysum可以传入任意个实参的数字,返回所有实参的和

#   def mysum(*args):
#      ...
#   print(mysum(1, 2, 3, 4))# 10
#   print(mysum(10, 20, 30))# 60

def mysum(*args):
    i = 0
    for x in args:
      i += x
    return i
print(mysum(1, 2, 3, 4))
print(mysum(10, 20, 30))
#################################################################

# # 练习:
# #   写一个函数,mymax类似于 内键的函数max
# #   详见:
# #       >>> help(max)
# #    仿造 max 写一信mymax函数,功能与max完全相同
# #    (要求不允许调用max函数)
# #    print(mymax())# 8
# #    print(mymax(100, 200))# 200
# #    print(mymax(1, 3, 5, 9, 7))# 9

def mymax(a, *args):
    if args is None:
      x = a
      for i in a:
            if x > a:
                x = a
      return x
    else:
      x = a
      for i in args:
            if x > i:
                x = i
      return x
print(mymax())
print(mymax(100, 200))
print(mymax(1, 3, 5, 9, 7))
#################################################################

# # 练习:
# #   创建一个全局变量 L = []
# #   写一个函数:
# #   def input_number():
# #         ....
# #   此函数每次调用将从键盘读入一些数字追加到列表L中
# #   如:
# #   L = []
# #   def input_number():
# #         ....
# #   input_number()
# #   print(L)# [ .... 这些是您从键盘输入的数..]

L = []
def input_number():
    while True:
      number = int(input("pleae inout bumber:"))
      if number < 0:
            break
      L.append(number)

#################################################################

# # 练习:
# #   1. 写一个函数isprime(x) 判断x是否为素数。如果是素数,返回True,否则返回False

def isprime(x):
    for i in range(2, x):
      if x / i % 0:
            return False
            break
      else:
            return True
#################################################################

# #   2. 写一个函数prime_m2n(m, n) 返回从m开始,到n结束(不包含n)范围内的素数,返回这些素数的列表并打印
# #   如:
# #       L = prime_m2n(5, 10)
# #       print(L)

def prime_m2(m, n):
    L = []
    for x in range(m, n):
      if isprime(x) is True:
            L.append(x)
    return L

L = prime_m2(2, 5)
print(L)
#################################################################

# #   3. 写一个函数pimes(n) 返回小于n的全部素数的列表,并打印这些素数
# #   如:
# #       L = primes(10)
# #       print(L)#
# #   1) 打印100 以内的全部素数
# #   2) 打印200 以内的全部素数的和


def pimes(n):
    prime_m2(2, n)
L = pimes(10)
print(L)#
#################################################################

# #   4. 编写函数 fn(n) 此函数返回下列级数的和:
# #       fn(n) = 1/(1*2) + 1/(2*3) + ....
# #       + 1/(n*(n-1)) 的和
# #   print(fn(100))

def fn(n):
    i = 0
    for x in range(n):
      i += x / (x + 1)
print(fn(100))
#################################################################

#         练习:
#   写一个函数叫hello(name),部分代码如下:
#   count = 0
#   def hello(name):
#       print('你好', name)
#       ... 此处代码省略,需要同学们自己填写
#       ... 此处代码需要改变全局变量来记录此函数曾经被调用过多少次.
count = 0
def hello(name):
    print("hello", name)
    count += 1
hello('小张')
hello('小李')
print('hello 函数被调用', count, '次')# 2次

#################################################################

#   练习:
#   1. 写一个lambda 表达式,判断这个数的2次方+1是否能被5整除,如果能被整除返回True, 否则返回False
#      例:
#         fa = lambda x: .....
#         print(fa(2))# True
#         print(fa(4))# False

fa = lambda x: (x ** 2 + 1) / 5 % 0
print(fa(2))
print(fa(4))
#################################################################

#   2. 写一个lambda表达式,求两个变量的最大值
#      例如:
#         def mymax(x, y):
#            ...
#         mymax = lambda ...
#         print(mymax(100, 200))# 200
mymax = lambda x, y: x if x > y else y
print(mymax(100, 200))# 200
#################################################################

# 练习:
#   1. 给出一个整数n,写一个函数myfac来计算n!(n的阶乘)
#   n! = 1 * 2 * 3 * 4 * ..... * n
#   如:
#       print(myfac(5))# 120
def myfac(n):
    x = 0
    for i in range(1, n + 1):
      x = i * (i + 1)
    return x
print(myfac(5))
#################################################################


#   2. 给出一个整数n,写一个函数计算myfn(n):
#       1 + 2**2 + 3**3 + .... + n**n的和
#   如:
#       print(myfn(10)) # ???

def myfn(n):
    i = 1
    for x in range(2, n + 1):
      i += x ** x
    return i
print(myfn(10))
#################################################################

#   3. 完全数:
#      1 + 2 + 3 = 6 (6为完全数)
#      1,2,3都为6的因数(因数是能被一个数x整除的整数为y,则y为x的因数)
#      1 x 6 = 6
#      2 x 3 = 6
#      完全数是指除自身以外的所有因数相加之和等于自身的数
#      求 4~5个完全数并打印出来
#      答案:
#      6
#      28
#      496
#      ......

def wq_bumber(x):
    s = 0
    for i in range(1, x):
      if x % i == 0:
            s += i
    if s == x:
      return True
    else:
      return False
i = 0
x = 0
while i < 4:
    x += 1
    if wq_bumber(x) is True:
      print(x)
      i += 1
复制代码


一共39到题 写了 3个多小时 ............这里就不上图了 时间不是很多

LeiSir 发表于 2018-7-17 09:16

给楼主加加动力,

sensMe 发表于 2018-7-17 09:25

虽然看的不是很懂。。。

heaven096 发表于 2018-7-17 09:41

虽然现在不是很懂,但是还是给楼主赞一个

zhuxin 发表于 2018-7-17 10:10

谢谢楼主了,但是这个运行出来有点问题。

wushaominkk 发表于 2018-7-17 10:32

本帖最后由 wushaominkk 于 2018-7-17 14:24 编辑

zhuxin 发表于 2018-7-17 10:10
谢谢楼主了,但是这个运行出来有点问题。
d = {1: '春季有1, 2, 3月',
      2: '夏季有4, 5, 6月',
      3: '秋季有7, 8, 9月',
      4: '冬季有10,11,12月'}
a = int(input("please input :"))
for x in d:
    if a == x:
      print(d)
      break
else:print("no")
或则
d = {1: '春季有1, 2, 3月',
      2: '夏季有4, 5, 6月',
      3: '秋季有7, 8, 9月',
      4: '冬季有10,11,12月'}
a = int(input("please input :"))
if a <= d.__len__() and a >0:
    print(d)
else:
    print("no")
或则:


if a in d:判断d是否包含a

以上还不够严谨,需要处理异常,比如用户输入非数字或则负数等等:
d = {1: '春季有1, 2, 3月',
      2: '夏季有4, 5, 6月',
      3: '秋季有7, 8, 9月',
      4: '冬季有10,11,12月'}
print("需要查询第几季度?,\n")
while True:
    try:
      a = int(input("请输入数字1-4:"))
      if a in d:
            print(d)
      else:
            print("输入错误,请输入1-4的数字,\n")
            continue
      break
    except ValueError:
      print("输入错误,请重新输入,\n")

ParisGabriel 发表于 2018-7-17 22:07

zhuxin 发表于 2018-7-17 10:10
谢谢楼主了,但是这个运行出来有点问题。

一次扯出来这么多 小白听不懂的   

ParisGabriel 发表于 2018-7-17 22:09

zhuxin 发表于 2018-7-17 10:10
谢谢楼主了,但是这个运行出来有点问题。




注意你的缩进问题 是if else不是for else

小黑LLB 发表于 2019-2-3 19:05

支持一下吧 感谢楼主分享哦
{:1_921:}{:1_921:}{:1_921:}
页: [1]
查看完整版本: 【Python】人工智能全栈工程师(0基础到精通)教程 第十七课