关注

ChatGPT国内镜像站初体验:聊天、Python代码生成等

ChatGPT国内镜像站初体验,聊天、Python代码生成。


(本文获得CSDN质量评分【92】)

【学习的细节是欢悦的历程】


  自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
            —— 华罗庚


等风来,不如追风去……


ChatGPT国内镜像站初体验
ChatGPT
(聊天、Python代码生成)


本文质量分:

92
本文地址: https://blog.csdn.net/m0_57158496/article/details/129035387

CSDN质量分查询入口:http://www.csdn.net/qc


目 录

在这里插入图片描述


◆ChatGPT


  最近ChatGPT传得沸沸扬扬,红得发紫。由于主站在国外,我没有资源和途径,无缘窥其尊容。最近有缘得到国内站点,趁着情人节的无所事事,来撩一把ChatGPT的国内镜像站点。

1、ChatGPT简介

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.

译文

  ChatGPT是一种自然语言处理(NLP)聊天机器人,它使用生成式的预训练转换器(GPT)模型来生成对用户输入的响应。它的设计目的是提供一种尽可能接近类人的对话体验。ChatGPT是在大量的会话数据语料库上进行训练的,并且能够生成与用户的输入既相关又合适的响应。ChatGPT可以用于各种应用程序中,包括客户服务、虚拟助理等。

  ChatGPT目前会使用Python,JavaScript,HTML和CSS等编程语言。后续如有需要,还会学习其他语言。

1.1 ChatGPT国内镜像站AI对话头像已更换


  ChatGPT国内镜像站,网页版、微信公众号版,AI对话头像已同步更换为“熊猫🐼头”,详见截屏图片(2023-02-16)


网页版聊天对话界面

在这里插入图片描述


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

在这里插入图片描述


回页目录

2、关于闲聊


  • 网页版体验

2.1 聊“情人节”


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

与ChatGPT聊天截屏图
在这里插入图片描述


2.2 讨要“情人节”礼物🎁


找ChatGPT要个“情人节”礼物🎁

与ChatGPT聊天截屏图
在这里插入图片描述


2.3 “挑拨”ChatGPT


“挑拨”ChatGPT ……

与ChatGPT聊天截屏图
在这里插入图片描述
在这里插入图片描述

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


2.4 微信体验界面

  • 微信版体验,也一样“聪明”
    在这里插入图片描述

回页目录

3、关于Python代码生成


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

3.1 乘法九九表


对ChatGPT提问截屏图
在这里插入图片描述

代码


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

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


与ChatG提问截屏
在这里插入图片描述

代码


for i in range(1, 10):
    for j in range(1, i+1):
        print(f'{i}*{j}={i*j}', end='\t')
    print()


输出
在这里插入图片描述

与ChatGPT提问截屏图
在这里插入图片描述


代码


for i in range(1, 10):
    for j in range(1, i+1):
        print(f'{i}×{j}={i*j}', end='\t')
    print()


输出
在这里插入图片描述

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


回页目录

3.2 杨辉三角

3.2.1 ChatGPT的两种算法


与ChatGPT提问截屏图
在这里插入图片描述

代码


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)


与ChatGPT提问截屏图
在这里插入图片描述

代码


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)


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

3.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)打印的变形杨辉三角

在这里插入图片描述


对称“杨辉三角”打印效果
在这里插入图片描述

3.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上学来的。😏


回页目录

3.3 素数判定和查找

3.3.1 素数判定


与ChatGPT提问截屏图
在这里插入图片描述

代码


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

注:此行代码

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

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


3.3.2 素数查找


与ChatGPT提问截屏图
在这里插入图片描述

代码


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:

ChatGPT间入了“!”、“(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 = 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


### 3.4 找出10000内所有完数

与ChatGPT提问截屏图
在这里插入图片描述
在这里插入图片描述

代码


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:

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


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

1、真因子和的变量命名字符最好不应与Python关键字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)


3.4 裴波拉契数列第n项


与ChatGPT提问截屏图
在这里插入图片描述

代码一


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='')

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


3.5 索要“车牌识别”系统


与ChatGPT索要截屏图
在这里插入图片描述
在这里插入图片描述

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

3.6 对“%”“编码错误”


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


向ChatGPT报错截屏图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  Python代码语句中如果有“%”字符,总会多出“!”、“(MISSING)”。这一点一定要引起重视,不然是run不了ChatGPT给出的Python代码的。
  ChatGPT说“可能是编码错误”,它会自主修复。经验证,并没有立即修正。



回页目录

4、写论文、写演讲稿?


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

  打死一遍“伸手党”!😄😄😄


与ChatGPT问答截屏图
在这里插入图片描述


在这里插入图片描述

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


回页目录

5、ChatGPT国内镜像站


  该站点目前没有设置限制,可以任意使用。


5.1 网页体验入口


5.2 微信体验入口


  • 微信体验入口

  微信入口二维码图片
微信入口二维码图片

  我的级别不够,CSDN不给我贴二维码的权限。我把二维码放网盘了,您可以复制下面的字符到“百度网盘”获取(永久有效)

通过百度网盘分享的文件:7LYFZBB3…
链接:https://pan.baidu.com/s/1IpnRHrRhpTk4sqwpl3WrkA
提取码:n332
复制这段内容打开「百度网盘APP 即可获取」


  由于访问量过大,微信已暂停扫码登入。您可在微信添加好友页面搜索“吴枫和他的朋友”微信公众号,关注后,直接在公众号聊天对话框中输入字符,就可以和ChatGPT交流了。
在这里插入图片描述


  • 微信体验界面

在这里插入图片描述


回页目录

6、结语

  通过国内镜像站对ChatGPT的体验,感觉到了“人工智能AI”的强大!至少ChatGPT已经强大的一塌糊涂了。💪
  对ChatGPT的合理利用,会让人如虎添翼,极大的加快工作、学习的效率。
  ChatGPT不会给出一个完整的项目,但却可以智能的给出极具建设性的一些建议。
  我认为,有这些,就已足够好的了。


回页目录

7、ChatGPT的原理、Python调用GPT-3 API


地址:https://mp.weixin.qq.com/s/n8pROl5Bht0F0IZaK-qfdA

地址:https://mp.weixin.qq.com/s/scunfoSwpdMTeGe5pPUh2Q


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

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


回页目录

8、完整源码

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

#!/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代码生成的“九九表”:\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 = 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() 


回页首

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

我的HOT博:

    转载自CSDN-专业IT技术社区

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    原文链接:https://blog.csdn.net/m0_57158496/article/details/129035387

    评论

    赞0

    评论列表

    微信小程序
    QQ小程序

    关于作者

    点赞数:0
    关注数:0
    粉丝:0
    文章:0
    关注标签:0
    加入于:--