人工智能AI威武,爱也!恨也!!它会创作会代码,从它那儿能仿到更好的思维;多它那里可以学到更好的代码。它聪慧全能,成为一坨人偷懒神器;变成“智者”作弊的“倚天屠龙”!!😭😭😭
-
Python 官网:https://www.python.org/
-
Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……
自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
—— 华罗庚
- My CSDN主页、My HOT博、My Python 学习个人备忘录
- 好文力荐、 老齐教室
本文质量分:
CSDN质量分查询入口:http://www.csdn.net/qc
- ◆人工智能AI
- 1、人工智能AI简介
- 2、我跟AI学代码
- 2.1 乘法九九表
- 2.2 杨辉三角
- 2.2.1 人工智能AI的两种算法
- 2.2.2 对称打印
- 2.2.3 奇妙的“[0]”算法
- 2.3 素数判定和查找
- 2.3.1 素数判定
- 2.3.2 素数查找
- 2.4 找出10000内所有完数
- 2.5 裴波拉契数列第n项
- 2.6 对“%”“编码错误”
- 3、AI抠门儿?
- 4、结语
- 5、AI的秘密
- 6、完整源码
◆人工智能AI
人工智能AI威武,爱也!恨也!!
它会创作会代码,从它那儿能仿到更好的思维;多它那里可以学到更好的代码。
它聪慧全能,成为一坨人偷懒神器;变成“智者”作弊的“倚天屠龙”!!😭😭😭
1、人工智能AI简介
ChatGPT is a natural language processing (NLP) chatbot that uses a generative pre-trained transformer (GPT) model to generate responses to user input. It is designed to provide a conversational experience that is as close to human-like as possible. ChatGPT is trained on a large corpus of conversational data and is able to generate responses that are both relevant and appropriate to the user’s input. ChatGPT can be used in a variety of applications, including customer service, virtual assistants, and more.
译文
人工智能AI是一种自然语言处理(NLP)聊天机器人,它使用生成式的预训练转换器(GPT)模型来生成对用户输入的响应。它的设计目的是提供一种尽可能接近类人的对话体验。人工智能AI是在大量的会话数据语料库上进行训练的,并且能够生成与用户的输入既相关又合适的响应。人工智能AI可以用于各种应用程序中,包括客户服务、虚拟助理等。
人工智能AI目前会使用Python,JavaScript,HTML和CSS等编程语言。后续如有需要,还会学习其他语言。
2、我跟AI学代码
我只会点点Python基础,所以只能与人工智能AI探讨Python代码。
2.1 乘法九九表
代码
# 人工智能AI 生成的“九九表”Python代码
for i in range(1, 10):for j in range(1, 10):print(i, 'x', j, '=', i*j)
输出
…
每一行都输出了1*i的积,给输出了9行×9列81个算式乘积,相当于两个九九表。
我想要的是这样子的“九九表”
我用“插值字符串格式”修改代码输出格式,可以输出上图九九表。也可以把代码揉合成列表解析,一行搞定。
常规代码写法
for i in range(1, 10):print() for j in range(1, i+1):print(f"{i}×{j}={i*j:>2}", end=' ')
一行代码解析“九九表”
nines = '\n'.join([' '.join(f"{i}×{j}={i*j:>2}" for j in range(1, i+1)) for i in range(1,10)])
input(f"\n打印一行Python代码生成的“九九表”:\n\n{nines}\n")
这是不是人工智能AI智能“脑子”有缺失?为探究,我修改了对话字符。
代码
for i in range(1, 10):for j in range(1, i+1):print(f'{i}*{j}={i*j}', end='\t')print()
输出
代码
for i in range(1, 10):for j in range(1, i+1):print(f'{i}×{j}={i*j}', end='\t')print()
输出
改变交流词句,得到了不同的结果。为验证我的猜测,重新用最初的提问语句提问,但得到的却是显示优化后的代码。用最初的交流言语,多次提问,都是得到后面的丢出的能完美打印九九表的代码。这是人工智能AI“自主学习”的结果?我不敢妄自猜度。从它“理解”让换*为×的快速执行,可以看出它对中文的理解已经相当“人类”了(它就是人类小孩纸了😋)。
2.2 杨辉三角
2.2.1 人工智能AI的两种算法
代码
def yanghui_triangle(n):triangle = [[1]]for i in range(1, n):row = [1]for j in range(1, i):row.append(triangle[i-1][j-1] + triangle[i-1][j])row.append(1)triangle.append(row)for row in triangle:print(row)
yanghui_triangle(12)
代码
def yanghui_triangle(n):# 初始化列表triangle = []for i in range(n):# 每一行的列表row = [None for _ in range(i+1)]# 第一个和最后一个元素赋值为1row[0], row[-1] = 1, 1# 中间元素的值等于上一行的相邻元素之和for j in range(1, len(row)-1):row[j] = triangle[i-1][j-1] + triangle[i-1][j]triangle.append(row)return triangle# 打印杨辉三角
for row in yanghui_triangle(12):print(row)
两次不同的提问,获取了两种算法的代码。但明显的,人工智能AI还不可以“理解”中文“对称打印”。😋
2.2.2 对称打印
修改最后的输出格式,即可实现对称打印。
# 打印杨辉三角
for row in yanghui_triangle(12):#print(f"{' '.join([f'{i:^3}' for i in row]):^50}")#print(f"{' '.join(map(str, row)):^50}")print(f"{' '.join(map(lambda x: f'{x:^3}', row)):^50}")
如果用map()格式化row,直接用str函数,会对不齐整,打印出来是变形三角。😣正确方式是:要用匿名函数lambda自定义每排每个数字宽度。前12项最大是三位数字,就格式化每个数字占三个字符宽度lambda x: f'{i:^3}',打印出来的“杨辉三角”才可以齐整漂亮。😏
map(str, row)打印的“内裤”杨辉三角
对称“杨辉三角”打印效果
2.2.3 奇妙的“[0]”算法
算法解析:
据“杨辉三角”结构特点,把“上一行”前后分别插入0,得到两个列表,分别把对应位置的整数相加就得到“下一行”。如:
- a. 从第二行生成第三行
[1, 1],第二行。
[0, 1, 1],前插0。
[1,1, 0],后加0。
[1, 2, 1],第三行。- b. 从第五行生成第六行
[1, 4, 6, 4, 1],第五行。
[0, 1, 4, 6, 4, 1],前插0。
[1, 4, 6, 4, 1, 0],后加0。
[1, 5, 10, 10, 5, 1],第六行。
代码
def yanghui_triangle(n):''' 打印杨辉三角前n行 '''late_row = [1] # 首行。for i in range(n): # 本该遍历n-1次,为了少一条print()多一次遍历。# 按定宽打印“上一行”。print(' '.join(map(lambda x: f'{x:^4}', late_row)).center(80)) # 多生成一行,始终打印上一行就好。next_row = [x+y for x,y in zip([0]+late_row, late_row+[0])] # 根据上行生成新行。late_row = next_row # 新行变“上一行”。n = 15
print(f"\n{f'“杨辉三角”前{n}行':~^74}\n")
yanghui_triangle(n)
print(f"\n{'':~^80}\n")
输出效果
此算法,我是从CSDN上学来的。😏
2.3 素数判定和查找
2.3.1 素数判定
代码
def is_prime(n):if n <= 1:return Falsefor i in range(2, n):#if n %!i(MISSING) == 0:if n % i == 0:return Falsereturn True
注:此行代码
if n %!i(MISSING) == 0:
人工智能AI间入了“!”、“(MISSING)”两个字符串,去除后才可以跑起来。
2.3.2 素数查找
代码
for num in range(2, 100):is_prime = Truefor i in range(2, num):#if num %!!(MISSING)i(MISSING) == 0:if num % i == 0:is_prime = Falsebreakif is_prime:print(num)
注:此行代码
if n %!!(MISSING)i(MISSING) == 0:
人工智能AI间入了“!”、“(MISSING)”两个字符串,去除后才可以跑起来。
我的代码
# 我的素数判定、查找代码def isprime(n):''' 素数判定 '''if n < 2:return # 1、0或者负数,不是素数。返回None。for i in range(2, n):if n%i == 0:return # 是合数,返回None。return n # 是素数,返回整数。def find_primes(n):''' 查找给定范围内的素数 '''return [i for i in range(n+1) if isprime(i)] # 列表解析给定范围的所有素数。if __name__ == '__main__':n = 1000print(f"\n{' '.join(map(str, find_primes(n)))}\n")
输出:1000内的素数列表
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 503 509 521 523 541 547 557 563 569 571 577 587 593 599 601 607 613 617 619 631 641 643 647 653 659 661 673 677 683 691 701 709 719 727 733 739 743 751 757 761 769 773 787 797 809 811 821 823 827 829 839 853 857 859 863 877 881 883 887 907 911 919 929 937 941 947 953 967 971 977 983 991 997
2.4 找出10000内所有完数
代码
for num in range(1, 10000):sum = 0for i in range(1, num):#if num %!i(MISSING) == 0:if num %i == 0:sum += iif sum == num:print(num)
注:此行代码
if n %!i(MISSING) == 0:
人工智能AI间入了“!”、“(MISSING)”两个字符串,去除后才可以跑起来。
这段儿代码,个人认为还可以优化:
1、真因子和的变量命名字符最好不应与Python关键字sum同款。
2、内层for遍历,当真因子和已大于外层遍历到的整数时,即已证明该整数不是完数,可以即刻退出内层for循环,继续遍历下一个整数。
for num in range(1, 10000):mysum = 0for i in range(1, num):#if num %!i(MISSING) == 0:if num %i == 0:mysum += iif mysum > num:breakif mysum == num:print(num)
2.5 裴波拉契数列第n项
代码一
def Fibonacci(n):if n == 0:return 0elif n == 1:return 1else:return Fibonacci(n-1) + Fibonacci(n-2)n = 9
print(Fibonacci(n))
代码二
def Fibonacci(n):if n == 1 or n == 2:return 1else:return Fibonacci(n-1) + Fibonacci(n-2)n = 9
for i in range(9):print(Fibonacci(n), end='')
这两段儿代码,无可挑剔,目前水准的我认为是完美无缺的。
2.6 对“%”“编码错误”
人工智能AI说这个情况,“可能是编码错误”。
Python代码语句中如果有“%”字符,总会多出“!”、“(MISSING)”字符串。这一点一定要引起重视,不然是run不了人工智能AI给出的Python代码的。
人工智能AI说“可能是编码错误”,它会自主修复。经验证,并没有立即修正。
3、AI抠门儿?
人工智能AI说好的“写论文”、“写演讲稿”哩?人工智能AI连作文都是不答应给写的,可以给出启发性的建议。个人感觉,这很好!😏
打死一遍“伸手党”!😄😄😄
4、结语
通过对人工智能AI的体验,感觉到了“人工智能AI”的强大!已经强大的一塌糊涂了。💪
对人工智能AI的合理利用,会让人如虎添翼,极大的加快工作、学习的效率。
人工智能AI不会给出一个完整的项目,但却可以很智慧地给出极具建设性的一些建议。
我认为,有这些,就已足够好的了。
5、AI的秘密
- 人工智能AI的原理:机器人背后的模型
地址:https://mp.weixin.qq.com/s/n8pROl5Bht0F0IZaK-qfdA
- 用 Python 调用 GPT-3 API
地址:https://mp.weixin.qq.com/s/scunfoSwpdMTeGe5pPUh2Q
通过阅读齐老师的这两篇文章,可以对人工智能AI有更深层次的了解,方便工作学习中把人工智能AI使用得“得心应手”。
技术文章出自老齐教室,作者老齐。
6、完整源码
(源码较长,点此跳过源码)
#!/sur/bin/nve python
# coding: utf-8s = '可以使用以下Python代码判定素数:'
print(s)def is_prime(n):#if n <= 1:if n < 2:return Falsefor i in range(2, n):#if n %!i(MISSING) == 0:if n % i == 0:return Falsereturn Truen = 97
print(f"\n{n}是素数:{is_prime(n)}")
n = -97
print(f"\n{n}是素数:{is_prime(n)}")
n = 33
print(f"\n{n}是素数:{is_prime(n)}\n")input()s = '可以使用以下Python代码打印100以内的质数列表:'
print(s)for num in range(2, 100):is_prime = Truefor i in range(2, num):#if num %!!(MISSING)i(MISSING) == 0:if num % i == 0:is_prime = Falsebreakif is_prime:print(num, end=' ')print()# 我的素数判定、查找代码def isprime(n):''' 素数判定 '''if n < 2:return # 1、0或者负数,不是素数。返回None。for i in range(2, n):if n%i == 0:return # 是合数,返回None。return n # 是素数,返回整数。def find_primes(n):''' 查找给定范围内的素数 '''return [i for i in range(n+1) if isprime(i)]if __name__ == '__main__':n = 1000print(f"\n{' '.join(map(str, find_primes(n)))}\n")input() s = '''您可以对称打印“杨辉三角”前12项么?对称打印!以下是用Python实现杨辉三角的代码:'''
print('杨辉三角'.center(46, '~'))
print(s)def yanghui_triangle(n):# 初始化列表triangle = []for i in range(n):# 每一行的列表row = [None for _ in range(i+1)]# 第一个和最后一个元素赋值为1row[0], row[-1] = 1, 1# 中间元素的值等于上一行的相邻元素之和for j in range(1, len(row)-1):row[j] = triangle[i-1][j-1] + triangle[i-1][j]triangle.append(row)return triangle# 打印杨辉三角
for row in yanghui_triangle(12):# 下面两种写法都可以实现对称打印杨辉三角。#print(f"{' '.join([f'{i:^3}' for i in row]):^50}")#print(f"{' '.join(map(str, row)):^50}")print(f"{' '.join(map(lambda x: f'{x:^3}', row)):^50}") # 要用匿名函数lambda自定义每排每个数字宽度。s = '\n可以使用以下Python代码打印“杨辉三角”前12项:'
print(s)def yanghui_triangle(n):triangle = [[1]]for i in range(1, n):row = [1]for j in range(1, i):row.append(triangle[i-1][j-1] + triangle[i-1][j])row.append(1)triangle.append(row)for row in triangle:print(row)
yanghui_triangle(12)def yanghui_triangle(n):''' 打印杨辉三角前n行 '''late_row = [1] # 首行。for i in range(n): # 本该遍历n-1次,为了少一条print()多一次遍历。# 按定宽打印“上一行”。print(' '.join(map(lambda x: f'{x:^4}', late_row)).center(80)) # 多生成一行,始终打印上一行就好。next_row = [x+y for x,y in zip([0]+late_row, late_row+[0])] # 根据上行生成新行。late_row = next_row # 新行变“上一行”。n = 15
print(f"\n{f'“杨辉三角”前{n}行':~^74}\n")
yanghui_triangle(n)
print(f"\n{'':~^80}\n")input() s = '九九表'
print(s)
# 1*1 = 1
for i in range(1, 10):for j in range(1, i+1):print(f'{i}*{j}={i*j}', end='\t')print()
# 1×1 = 1
for i in range(1, 10):for j in range(1, i+1):print(f'{i}×{j}={i*j}', end='\t')print()# 人工智能AI 生成的“九九表”Python代码
for i in range(1, 10):for j in range(1, 10):print(i, 'x', j, '=', i*j)input('\n【人工智能AI生成的“九九表”Python代码,输出效果】')nines = '\n'.join([' '.join(f"{i}×{j}={i*j:>2}" for j in range(1, i+1)) for i in range(1,10)])
input(f"\n打印一行Python代码生成的“九九表”:\n\n{nines}\n")for i in range(1, 10):print() for j in range(1, i+1):print(f"{i}×{j}={i*j:>2}", end=' ')input() s = '可以使用以下Python代码找出10000内的完数:'
print(s)for num in range(1, 10000):sum = 0for i in range(1, num):#if num %!i(MISSING) == 0:if num %i == 0:sum += iif sum == num:print(num)# 算法优化代码
for num in range(1, 10000):mysum = 0for i in range(1, num):#if num %!i(MISSING) == 0:if num %i == 0:mysum += iif mysum > num:breakif mysum == num:print(num)input()s = '裴波拉契数列是一个数学序列,它的每一项都是前两项的和,即F(n)=F(n-1)+F(n-2),其中F(1)=F(2)=1。可以使用以下Python代码求出第n项:'
print(s)def Fibonacci(n):if n == 1 or n == 2:return 1else:return Fibonacci(n-1) + Fibonacci(n-2)n = 9
for i in range(9):print(Fibonacci(n), end='')s = '可以使用以下Python代码来求裴波拉契数列第n项:'
print(s)def Fibonacci(n):if n == 0:return 0elif n == 1:return 1else:return Fibonacci(n-1) + Fibonacci(n-2)n = 9
print(Fibonacci(n))input() s = '可以使用以下Python代码来判定素数:'
print(s)def is_prime(n):if n <= 1:return Falsefor i in range(2, n):#if n %!i(MISSING) == 0:if n % i == 0:return Falsereturn Truen = 88
print(f"\n{n}是素数:{is_prime(n)}\n")input()
__上一篇:__ 我的零分周赛(CSDN周赛第30期,成绩“0”分,天然气定单、小艺读书、买苹果🍎、圆桌)
__下一篇:__
我的HOT博:
- 人工智能AI初体验(人工智能AI国内镜像站初体验,聊天、Python代码生成。)CSDN质量分92。(30801阅读)
- 彩色文字界面尼姆游戏(1001阅读)
- 神奇的 \033 ,让打印出彩(1118阅读)
- 小炼二维数组(1174阅读)
- 仿真模拟福彩双色球(1954阅读)
- Python之魔幻切片(1263阅读)
- 数列求和a, aa, aaa, ..., aa...aa(n个a)(1326阅读)
- 个人信息提取(2027阅读)
- 十六进制字符串转Python代码(utf-8字符串转十六进制字符串)(1244阅读)
- 生成100个随机正整数(1917阅读)
- 给定字符串提取姓名(字符串、list、re“零宽断言”)(1350阅读)
- 我的 Python.color() (Python 色彩打印控制)(1777阅读)
- python清屏(2908阅读)
- 回车符、换行符和回车换行符(2961阅读)
- Linux 脚本文件第一行的特殊注释符(井号和感叹号组合)的含义(1692阅读)
- random.sample()将在python 3.9x后续版本中被弃用(1594阅读)
- pandas 数据类型之 Series(1674阅读)
- 聊天消息敏感词屏蔽系统(字符串替换 str.replace(str1, *) )(1747阅读)
- 练习:银行复利计算(用 for 循环解一道初中小题)(1580阅读)
- pandas 数据类型之 DataFrame(5061阅读)
- 班里有人和我同生日难吗?(蒙特卡洛随机模拟法)(2355阅读)
- Python 续行符(\)“拯救”你的超长语句(1308阅读)
- Python字符串居中显示(4096阅读)
- 练习:求偶数和、阈值分割和求差( list 对象的两个基础小题)(1738阅读)
- 用 pandas 解一道小题(2150阅读)
- 可迭代对象和四个函数(1171阅读)
- “快乐数”判断(1355阅读)
- 罗马数字转换器(构造元素取模)(2604阅读)
- Hot:罗马数字(转换器|罗生成器)(5576阅读)
- Hot:让QQ群昵称色变的代码(48847阅读)
- Hot:斐波那契数列(递归| for )(4166阅读)
- 柱状图中最大矩形(1764阅读)
- 排序数组元素的重复起止(1369阅读)
- 电话拨号键盘字母组合(1579阅读)
- 密码强度检测器(2524阅读)
- 求列表平衡点(1965阅读)
- Hot: 字符串统计(4426阅读)
- Hot:尼姆游戏(聪明版首发)(3684阅读)
- 尼姆游戏(优化版)(1375阅读)
推荐条件 点阅破千
回页首
精品文章:
- 好文力荐:齐伟书稿 《python 完全自学教程》 Free连载(已完稿并集结成书,还有PDF版本百度网盘永久分享,点击跳转免费🆓下载。)
- OPP三大特性:封装中的property
- 通过内置对象理解python'
- 正则表达式
- python中“*”的作用
- Python 完全自学手册
- 海象运算符
- Python中的 `!=`与`is not`不同
- 学习编程的正确方法
来源:老齐教室
回页首
◆ Python 入门指南【Python 3.6.3】
好文力荐:
-
全栈领域优质创作者——寒佬(还是国内某高校学生)博文“非技术文—关于英语和如何正确的提问”,“英语”和“会提问”是学习的两大利器。
-
【8大编程语言的适用领域】先别着急选语言学编程,先看它们能干嘛
-
靠谱程序员的好习惯
CSDN实用技巧博文:
- 8个好用到爆的Python实用技巧
- python忽略警告
- Python代码编写规范
- Python的docstring规范(说明文档的规范写法)