问答
南陵兰忌
1楼
老师,咱们python就业需不需要考一些证书呀?


尚新途

有含金量高的证书自然会更好一些

夏日星灼
2楼

image.png

这序号是不是弄错了,04是不是没有呢

尚新途

是的,多谢反馈

阿格里先生
3楼

如图,就是这一个地方不太理解

尚新途

第一张.jpg这是第一张图,上面的是第二张图

尚新途

不对 不能这样

应该是a=="Q" or a=='q'

不然‘q’就是不做任何判断默认就是true


Aloe
4楼

image.png

尚新途

有什么问题吗?

Aloe
5楼

老师,Python的面向对象和java的面向对象有什么区别,还是一样的麽??

尚新途

只能说是相似的,但是不完全一样的。

ABCabc
6楼

老师看下附件代码哪错了

错.gif

goods = [
    {"name": "面包", "mount": 7, "price": 5},
    {"name": "牛奶", "mount": 3, "price": 10},
    {"name": "香蕉", "mount": 1, "price": 12},
    {"name": "大米", "mount": 2, "price": 98}
    ]
def showGoods(x):
    print("--- 商品信息 ---")
    count = 0
    a = 0
    money = 0
    for i in x:
        print(f"{count}",i["name"],i["mount"],i["price"])
        count += 1
        start = (i[a]["mount"])*(i[a]["price"])
        a += 1
        money += start
    return money
    
    
showGoods(goods)
print(f"本次购物总价为{showGoods(goods)}元")


尚新途

正确代码如下:建议你先学习咱们视频的内容,掌握基本语法后再去接触课外代码

goods = [
    {"name": "面包", "mount": 7, "price": 5},
    {"name": "牛奶", "mount": 3, "price": 10},
    {"name": "香蕉", "mount": 1, "price": 12},
    {"name": "大米", "mount": 2, "price": 98}
]


def showGoods(x):
    print("--- 商品信息 ---")
    count = 0
    a = 0
    money = 0
    for i in x:
        print(f"{count}", i["name"], i["mount"], i["price"])
        count += 1
        start = i.get("mount") * i.get("price")
        a += 1
        money += start
    return money


showGoods(goods)
print(f"本次购物总价为{showGoods(goods)}元")


ABCabc
7楼

老师看下这段代码哪出问题了?

goods = [
    {"name": "面包", "mount": 7, "price": 5},
    {"name": "牛奶", "mount": 3, "price": 10},
    {"name": "香蕉", "mount": 1, "price": 12},
    {"name": "大米", "mount": 2, "price": 98}
    ]
def showGoods(x):
    print("--- 商品信息 ---")
    count = 1
    for i in x:
        print(f"{count}" i.get("name") i.get("mount") i.get("price"))
        count += 1
showGoods(goods)


尚新途

图片.png

把中间的逗号补上

励步野
8楼

老师好,我想问下那个Pycharm能给哪下载啊?

尚新途

pycharm去官网下载就可以了,https://www.jetbrains.com/pycharm/,这个是链接。

yoah
9楼

老师,你好!我想问一哈,import turtle那个程序里面,为啥left是59呢?可以更改为其他数字么?


尚新途

可以呀,角度你可以任意写,left(59)就是往左旋转59度

冷酷的双曲线
10楼
class STDYLTSW:


    def __init__(self, year, month, day):
        # 记录当前日期 的三个属性
        self.day = day
        self.month = month
        self.year = year
        self.date = (1990, 1, 1)  # 初始日期
        self.days = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30]  # 跟上月的天数之差
        self.totalDays = 0


    def judge_year(self):
        # 判断闰年 是 返回1  否返回0
        if (self.year % 4 == 0 and self.year % 100 != 0) or (self.year % 400 == 0):
            return 1
        else:
            return 0

    def cal_total_days(self):
        # 计算年和年之间的天数之差
        t = self.date[0]  # 将1990赋给t
        while t < self.year:
            if self.judge_year() == 1:
                self.totalDays += 366
            else:
                self.totalDays += 365
            t = t + 1
        # 计算月和月之间的天数之差
        i = 0
        if self.judge_year() == 1:
            self.days[2] += 1
        while i < self.month:
            self.totalDays += self.days[i]
            i += 1
        # 计算最后天数之差
        self.totalDays += self.day

    def show_info(self):
        print("{}/{}/{}与1990/1/1天数之差是{}天".format(self.year, self.month, self.day, self.totalDays))
        result = self.totalDays % 5
        # 判断是打鱼还是晒网
        if 0 < result < 4:
            print("今天打鱼")
        else:
            print("今天晒网!")


y, m, d = [int(i) for i in input().split()]
p = STDYLTSW(y, m, d)
p.cal_total_days()
p.show_info()

三天打鱼两天晒程序,用面向对象的方式编写,结果老是多了几天?不知道为什么?

以上是面向对象的代码?

面向过程的正确代码如下:

# 判断是否是闰年 是的返回1 否返回0
def run_year(year):
    if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
        return 1
    else:
        return 0

def count_day(currentDay):
    perMonth = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30]
    totalDay = 0
    year = 1990
    while year < currentDay['year']:
        # 求出指定日期之前的每一年的天数之和
        if run_year(year) == 1:
            totalDay += 366
        else:
            totalDay += 365
        year += 1
    if run_year(currentDay['year']) == 1:
        perMonth[2] += 1
    # 如果是闰年,二月份是29天
    i = 0
    while i < currentDay['month']:
        # 将本年的天数累加到totalDay中
        totalDay += perMonth[i]
        i += 1
    totalDay += currentDay['day']
    return totalDay


if __name__ == '__main__':
    # while True:
    print("输入指定日期包括年、月、日。如:1999 1 31")
    year, month, day = [int(i) for i in input().split()]
    # 定义一个日期字典
    today = {'year': year, 'month': month, 'day': day}
    totalDay = count_day(today)
    # 求出指定日期距离1990年1月1日的天数
    print("{}年{}月{}日与1990年1月1日相差{}天".format(year, month, day, totalDay))
    # 天数%5 判断输出打鱼还是晒网
    result = totalDay % 5
    if 0 < result < 4:
        print("今天打鱼!")
    else:
        print("今天晒网!")

麻烦老师解答一下。

尚新途

这个时间对不上还是说明上面代码的计算有问题,应该是平闰年的关系。

尚新途

好的没事,昨天我已经找出来了

尚新途

好的。

Rock
11楼

我用的是3.9版本,遇到下面问题,


Traceback (most recent call last):

  File "C:\Users\zrhci\PycharmProjects\pythonProject\venv\test.py", line 4, in <module>

    t.forward(x)

AttributeError: 'dict' object has no attribute 'forward'


尚新途

你把代码发给我,你是不是导入的是import turtle  ,后面没有as t。

冷酷的双曲线
12楼
from tkinter import *
def bgUpdate(source):   #事件调用
    '''更改窗口背景颜色'''
    red=rSlinder.get()
    green=gSlinder.get()
    blue=bSlinder.get()
    print("R=%d,G=%d,B=%d" %(red,green,blue))
    myColor="#%02x%02x%02x" %(red,green,blue)
    root.config(bg=myColor)

root=Tk()
root.title("flysnow")
root.geometry("360x240")
fm=Frame(root)
fm.pack()

rSlinder=Scale(fm,from_=0,to=255,command=bgUpdate)
gSlinder=Scale(fm,from_=0,to=255,command=bgUpdate)
bSlinder=Scale(fm,from_=0,to=255,command=bgUpdate)

rSlinder.grid(row=0,column=0)
gSlinder.grid(row=0,column=1)
bSlinder.grid(row=0,column=2)

gSlinder.set(125)

root.mainloop()

问题描述:为什么这里bgUpdate() 加个source 进行事件绑定,否则程序报错。command一般不用事件绑定的吗?

尚新途

对的,不用事件绑定,但是那个source换成随意一个参数也可以。

尚新途

source不能没有,不然程序报错呀

尚新途

我说的是source可以换成其他的单词,不影响,但是没有会报错。

wechat4by4AB
13楼

解释性语言和编译性语言的差别主要体现在性能方面吗,比如python是解释性语言,性能偏低?

尚新途
类型原理优点缺点
编译型语言通过专门的编译器,将所有源代码一次性转换成特定平台(Windows、Linux 等)执行的机器码(以可执行文件的形式存在)。编译一次后,脱离了编译器也可以运行,并且运行效率高。可移植性差,不够灵活。
解释型语言由专门的解释器,根据需要将部分源代码临时转换成特定平台的机器码。跨平台性好,通过不同的解释器,将相同的源代码解释成不同平台下的机器码。一边执行一边转换,效率很低。


chorfai
14楼
请问一下既然Python3不兼容Python2,从Python3学起,那么如果出现了Python4,我们需要从头学起吗?
尚新途

版本的改动,官网都会对改动部分进行说明,只需要了解改动部分,一些改动很大的会有很多专业人士分享相关文档,但是怎么改也不会让你从头学

chorfai
15楼
请问一下既然Python3不兼容Python2,从Python3学起,那么如果出现了Python
尚新途

不同的版本会有各自独立的环境,后面咱们也会学习虚拟环境的知识,就是为了解决这样的问题,耐心往后学

自我检测(5S)