ParisGabriel感谢 大家的支持 全部课程 原文地址 : http://www.cnblogs.com/ParisGabriel/tag/Python/
每天坚持手写 一天一篇 点个订阅吧 决定坚持几年 全栈工程师(包含:python、爬虫、Web、人工智能、h5等) 讲完接着 java、黑客攻防 、渗透、 易语言(比较简单学完python基本就会了)、等等到时候再说.... IT无止境! 灰常感谢 当个死粉也阔以
Python人工智能从入门到精通
week summer:
- # # 练习:
- # # 已知有列表:
- # # L = [3, 5]
- # # 1) 用索引和切片等操作,将原列表改变为:
- # # L = [1, 2, 3, 4, 5, 6]
- L = [3, 5]
- L[0: 2]
- L = [1, 2, 3, 4, 5, 6]
- print(L)
- #################################################################
- # # 2) 将列表反转,删除最后一个元素后打印此列表
- # # ...
- # # print(L) # [6, 5, 4, 3, 2]
- L = [6, 5, 4, 3, 2]
- 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[1])
- del L[-1]
- print(sum(L))
- #################################################################
- # # 练习:
- # # 用列表推导式生成1~100内奇数的列表
- # # 结果是: [1, 3, 5, 7, ..... 99]
- # # L = [x for x in range(1, 100, 2)]
- L = [x for x in range(1, 100, 2)]
- #################################################################
- # # 示例:
- # # 生成1~00内的奇数的列表:
- # # L = [x for x in range(1, 100) if x % 2 == 1]
- L = [x for x in range(1, 100) if x % 2 != 0]
- #################################################################
- # # 练习:
- # # 生成一个数值为 1 ~ 9的平方的列表,去掉所有的奇数的平方
- # # L = [x**2 for x in range(1, 10)]
- L = [x ** 2 for x in range(0, 10, 2)]
- #################################################################
- # # # L = [4, 16, 36, 64]
- # # 练习:
- # # 1. 已知有一个字符串
- # # s = '100,200,300,500,800'
- # # 将其转化为整数的列表存于L列表中
- # # L = [100, 200, 300, 500, 800]
- s = '100,200,300,500,800'
- L = []
- for x in s:
- L.append(s)
- print(L)
- #################################################################
- # # 2. 生成前40个斐波那契数(Fibonacci)
- # # 1 1 2 3 5 8 13 .....
- # # 要求将这些数保存在列表中
- # # 打印这些数
- L = [1, 1]
- while True:
- a = L[0] + L[1]
- L.append(a)
- if len(L) == 40:
- break
- print(L)
- #################################################################
- # # 3. 有一些数存于列表中:
- # # L = [1, 3, 2, 1, 6, 4, 2, ..... 98, 82]
- # # 将列表中出现的数字存入到另一个列表L2中
- # # 要求: 重复出现多次的数字在L2列表中只保留一份(去重)
- L = [1, 3, 2, 1, 6, 4, 2, 98, 98, 82]
- 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[a])
- 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[x] += 1
- else:
- d[x] = 1
- for i in d:
- print(i, d[i])
- #################################################################
- # # 练习:
- # # 有字符串的列表如下:
- # # 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 = [1001, 1002, 1003, 1004]
- # # list2 = ['Tom', 'Jerry', 'Spike', 'Tyke']
- # # 生成的字典为:
- # # {1001: 'Tom', 1002:'Jerry', .....}
- list1 = [1001, 1002, 1003, 1004]
- list2 = ['Tom', 'Jerry', 'Spike', 'Tyke']
- d = {list1[x]: list2[x] 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([6, 8, 3, 5])) # 8
- # # print(mymax(100, 200)) # 200
- # # print(mymax(1, 3, 5, 9, 7)) # 9
- def mymax(a, *args):
- if args is None:
- x = a[0]
- for i in a:
- if x > a[i]:
- x = a[i]
- return x
- else:
- x = a
- for i in args:
- if x > i:
- x = i
- return x
- print(mymax([6, 8, 3, 5]))
- 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) [5, 7]
- 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) # [2, 3, 5, 7]
- # # 1) 打印100 以内的全部素数
- # # 2) 打印200 以内的全部素数的和
- def pimes(n):
- prime_m2(2, n)
- L = pimes(10)
- print(L) # [2, 3, 5, 7]
- #################################################################
- # # 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个多小时 ............
复制代码
|