网页版聊天对话界面

微信公众号版聊天对话界面

回页目录

1.3 聊“情人节”

趁这没有情人的情人节,与 唠唠“情人节”……

与聊天截屏图

1.4 讨要“情人节”礼物

找要个“情人节”礼物

与聊天截屏图

1.5 “挑拨”

“挑拨” ……

与聊天截屏图

从对的话语“挑逗”来看,它还是足够聪明的,对“无聊”的“我”,还是有一定治愈的。给我的感觉是——很不错!

1.6 微信体验界面 回页目录 2、与探讨代码

我只会点点基础,所以只能体验用代码来解决提问。

2.1 乘法九九表

对提问截屏图

代码


# ChatGPT 生成的“九九表”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代码生成的“九九表”:nn{nines}n")

这是不是说明,智能的缺失?为探究,我修改了提问词句。

与ChatG提问截屏

代码


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()

输出

改变提问词句,得到了不同的结果。未验证我的猜测,重新用最初的提问语句提问,但得到的却是显示优化后的代码。用最初的提问词句,多次提问,都是得到后面的代码。这是“自主学习”的结果?我不敢妄自猜度。从它“理解”让换*为×的快速执行,可以看出它对中文的理解已经相当“人类”了(它已经是人类小孩纸了)。

回页目录 2.2 杨辉三角 3.2.1 的两种算法

与提问截屏图

代码


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)]
        # 第一个和最后一个元素赋值为1
        row[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)

两次不同的提问,获取了两种算法的代码。但明显的,还不可以“理解”中文“对称打印”。

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函数,会对不齐整,打印出来是变形三角。正确方式是:要用匿名函数自定义每排每个数字宽度。前12项最大是三位数字,就格式化每个数字占三个字符宽度 x: f'{i:^3}',打印出来的“杨辉三角”才可以齐整漂亮。

map(str, row)打印的变形杨辉三角

对称“杨辉三角”打印效果

2.2.3 奇妙的“[0]”算法

算法解析:

据“杨辉三角”结构特点,把“上一行”前后分别插入0,得到两个列表,分别把对应位置的整数相加就得到“下一行”。如:

代码


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 False
    for i in range(2, n):
        #if n %!i(MISSING) == 0:
        if n % i == 0:
            return False
    return True

脚本定制一般多少钱_哪里可以用chatgpt写脚本定制_脚本自己写

注:此行代码

if n %!i(MISSING) == 0:

间入了“!”、“()”两个字符串,去除后才可以跑起来。

2.3.2 素数查找

与提问截屏图

代码


for num in range(2, 100):
    is_prime = True
    for i in range(2, num):
        #if num %!!(MISSING)i(MISSING) == 0:
        if num % i == 0:
            is_prime = False
            break
    if is_prime:
        print(num)
        

注:此行代码

if n %!!(MISSING)i(MISSING) == 0:

间入了“!”、“()”两个字符串,去除后才可以跑起来。

我的代码

# 我的素数判定、查找代码
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 = 1000
    print(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 = 0
    for i in range(1, num):
        #if num %!i(MISSING) == 0:
        if num %i == 0:
            sum += i
    if sum == num:
        print(num)

注:此行代码

if n %!i(MISSING) == 0:

间入了“!”、“()”两个字符串,去除后才可以跑起来。

这段儿代码,个人认为还可以优化:

1、真因子和的变量命名字符最好不应与关键字sum同款。

2、内层for遍历,当真因子和已大于外层遍历到的整数时,即已证明该整数不是完数,可以即刻退出内层for循环,继续遍历下一个整数。


for num in range(1, 10000):
    mysum = 0
    for i in range(1, num):
        #if num %!i(MISSING) == 0:
        if num %i == 0:
            mysum += i
            if mysum > num:
                break
    if mysum == num:
        print(num)

2.4 裴波拉契数列第n项

与提问截屏图

代码一


def Fibonacci(n):
    if n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        return Fibonacci(n-1) + Fibonacci(n-2)
n = 9
print(Fibonacci(n))

代码二


def Fibonacci(n):
    if n == 1 or n == 2:
        return 1
    else:
        return Fibonacci(n-1) + Fibonacci(n-2)
n = 9
for i in range(9):
    print(Fibonacci(n), end='')

这两段儿代码,无可挑剔,目前水准的我认为是完美无缺的。

2.5 索要“车牌识别”系统

与索要截屏图

不会给出整个项目代码,但会给出比较靠谱的建议。

2.6 对“%”“编码错误”

说这个情况,“可能是编码错误”。

向报错截屏图

代码语句中如果有“%”字符,总会多出“!”、“()”。这一点一定要引起重视,不然是run不了给出的代码的。

说“可能是编码错误”,它会自主修复。经验证,并没有立即修正。

回页目录 3、写论文、写演讲稿?

说好的“写论文”、“写演讲稿”哩?连作文都是不答应给写的,可以给出启发性的建议。个人感觉,这很好!

打倒一遍“伸手党”!

与问答截屏图

Chat GPT标榜的“写作业”、“写论文”、“总统演讲稿”,是不是国外主站才可以哩?还是因为我英文文盲,没有整对“英文界面”的功能驾驭?

回页目录 5、站点

主站的注册门槛,拦下了我这样子的一批“技术不行”的人。国内镜像站点如雨后春笋,大量涌现,但不少站点是出于捞钱的目的,需注册VIP会员才可以畅快体验。

没有设置限制,可以任意体验的站点,也是可以淘到的,如无特殊需求,当个“搜索引擎”或者“老师”是相当不错滴。它就在那里,静静地不知疲倦地等着您,等着为您排忧解难,等着您向它“拷问”。

太过聪慧,一些“聪明”人在工作或学习上,用来偷懒亦或作弊,对人对己都是一种伤害,造成不公的“比评”。

基于还一片“静土”的考量,一些院校、机关、单位等,开启了“封禁”约束使用场景的策略。

对于真正聪明的人,就是“倚天屠龙”。提升工作能力,迭代学习模式,增强学习效果,加快学习进度,是不在话下的问题。

通过国内镜像站对的体验,感觉到了“人工智能AI”的强大!至少已经强大的一塌糊涂了。

对的合理利用,会让人如虎添翼,极大的加快工作、学习的效率。

不会给出一个完整的项目,但却可以智能的给出极具建设性的一些建议。

我认为,有这些,就已足够好的了。

回页目录 5、的原理及“内核”

地址:

地址:

通过阅读齐老师的这两篇文章,可以对有更深层次的了解,方便工作学习中把使用得“得心应手”。

技术文章出自老齐教室,作者老齐。

回页目录 6、与探讨的完整源码

(源码较长,点此跳过源码)

#!/sur/bin/nve python
# coding: utf-8
s = '可以使用以下Python代码判定素数:'
print(s)
def is_prime(n):
    #if n <= 1:
    if n < 2:
        return False
    for i in range(2, n):
        #if n %!i(MISSING) == 0:
        if n % i == 0:
            return False
    return True
n = 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 = True
    for i in range(2, num):
        #if num %!!(MISSING)i(MISSING) == 0:
        if num % i == 0:
            is_prime = False
            break
    if 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 = 1000
    print(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)]
        # 第一个和最后一个元素赋值为1
        row[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()
# ChatGPT 生成的“九九表”Python代码
for i in range(1, 10):
    for j in range(1, 10):
        print(i, 'x', j, '=', i*j)
input('n【ChatGPT生成的“九九表”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代码生成的“九九表”:nn{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 = 0
    for i in range(1, num):
        #if num %!i(MISSING) == 0:
        if num %i == 0:
            sum += i
    if sum == num:
        print(num)
# 算法优化代码
for num in range(1, 10000):
    mysum = 0
    for i in range(1, num):
        #if num %!i(MISSING) == 0:
        if num %i == 0:
            mysum += i
            if mysum > num:
                break
    if 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 1
    else:
        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 0
    elif n == 1:
        return 1
    else:
        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 False
    for i in range(2, n):
        #if n %!i(MISSING) == 0:
        if n % i == 0:
            return False
    return True
n = 88
print(f"n{n}是素数:{is_prime(n)}n")
input() 

回页首 __上一篇:__ 求解最大公约数(常用的四大算法求解最大公约数,分解质因数法、短除法、辗转相除法、更相减损法)