Judie 发表于 2020-1-8 10:00:57

【朱迪的手写学习笔记 之 零基础入门学习Python】004

本帖最后由 Judie 于 2020-3-31 12:27 编辑

【朱迪的手写学习笔记 之 零基础入门学习Python】004
2020要继续努力呀!

视频笔记



课后作业

第004讲:改进我们的小游戏 | 课后测试题及答案
https://fishc.com.cn/thread-37006-1-1.html
(出处: 鱼C论坛)

动动手

0. 完善第二个改进要求(为用户提供三次机会尝试,机会用完或者用户猜中答案均退出循环)并改进视频中小甲鱼的代码。

input()的作用是接受用户输入/接受得到的东西会是个字符串

int()的作用是把接受得到的字符串转换为整数类型,

= 赋值

print() 打印到屏幕/默认是结束会换行。end=‘ ’意在使其末尾不换行

print()默认打印完字符串会自动添加一个换行符
end 是函数print()的一个参数,用来指定打印结束时末尾的符号,默认是回车/即换行


2.尝试写代码实现以下截图功能:
标答
temp = input('请输入一个整数:')
number = int(temp)
while number:
    i = number - 1
    while i:
      print(' ', end = '')
      i = i - 1
    j = number
    while j:
      print('*', end = '')
      j = j - 1
    print()
    number = number - 1
注释

temp = input('请输入一个整数:') # input()的作用是接受用户输入,假设用户输入3/此时接受的这个3是个字符串

number = int(temp) # int()的作用是将3从字符串转换为整数类型,此时number=3

while number: # 即while 3: 即while True:/只有False,None,0,"",'',(),[],{},会被看做假

    i = number - 1 # i= 3-1 = 2
    while i: # 即while 2: 即 while True: 所以执行循环下的内容
      print( ' ',end ='') # 打印一个空格/print默认是打印一行,结尾加换行。end=' '意思是末尾不换行
      i = i-1 # i = 2-1 = 1,
      #回到while i: 开始第二次循环,再打印一个空格后,i=1-1=0,因为while i:即while 0: 所以没有第三次循环了
      #此时在第一行共打印了两个空格
      
    j = number # j = 3
    while j: # 即while 3: 即while True:所以执行循环下的内容
      print('*',end ='') #打印一个星号,末尾不换行
      j = j-1 #j= 3-1 =2
      #回到while j: 开始第二次循环,打印一个星号,j=2-1=1
      #开始第三次循环,打印一个星号,j=1-1=0,没有第三循环了
      #此时,在第一行接着两个空格后 共打印了3个星号

    print() #换行/另起一行
    number = number -1 #number=3-1=2

#继续,while number; 即 while 2: 又一个循环,重复以上操作
    #i=number-1 即 i=1
    #while i: 即 while 1:的循环 -> 在第二行共打印一个空格
    #j=number 即 j=2
    #while j: 即 while 2:的循环 -> 在第二行接着一个空格后 共打印了2个星号
#此时,在第2行接着1个空格后 共打印了2个星号

#print() 去到第三行
#number = 2-1=1
#while number: 的第三次循环
      #i= number-1 =1-1 =0
            #while i; 即while 0: 条件不为真,不执行循环下的操作 -》在第三行没有空格被打印
         #j=number =1
            #while j: 即 while 1: -》在第三行 共打印1个星号
#此时,在第3行接着0个空格后 共打印了1个星号

#print() 去到第四行
    #number=1-1 =0
    #while number; 即 while 0: 条件不为真,不再继续


    #运行完毕
    #第1行2空格3星号
    #第2行1空格2星号
    #第3行0空格1星号



还有看到一个很好的code,运行起来也是没问题,实现的效果也是一样的
b = input('请输入一个整数:')
c = int(b)
a = c -1
while c:
    print(' '*a,end='')
    print('*'*c)
    c -=1
    a -=1



再附一个code:

num = int (input('请输入一个整数:'))
while num :
    print((num-1) * ' ' +num*'*' )
    num -= 1   


【最新版】

第004讲:变量和字符串(下)| 课后测试题及答案
https://fishc.com.cn/thread-144421-1-1.html
(出处: 鱼C论坛)


动动手

0. 请将下面的文本拷贝并赋值给变量名(fishc),使其可以如下图的效果打印输出。
解析:由于字符串内容中存在反斜杠(\),为了其完整性,请务必使用原始字符串(在三引号前面加上 r)

>>> fishc = """
      ___                     ___          ___          ___   
   /\\         ___       /\\      /\__\      /\\   
    /::\\       /\\   /::\\      /://       /::\\   
   /:/\:\\      \:\\   /:/\ \\    /:/__/       /:/\:\\
/::\~\:\\   /::\__\ _\:\~\ \\/::\\ ___/:/\:\\
/:/\:\ \:\__\ __/:/\/__//\ \:\ \ \__\/:/\:\/\__\/:/__/ \:\__\
\/__\:\ \/__//\/://   \:\ \:\ \/__/\/__\:\/://\:\\\/__/
      \:\__\\::/__/   \:\ \:\__\       \:://\:\\      
       \/__/   \:\__\      \:\/://       /://    \:\\   
                \/__/       \:://       /://      \:\__\   
                           \/__/      \/__/      \/__/"""
>>>
>>> print(fishc)

      ___                     ___          ___          ___   
   /\\         ___       /\\      /\__\      /\\   
    /::\\       /\\   /::\\      /://       /::\\   
   /:/\:\\      \:\\   /:/\ \\    /:/__/       /:/\:\\
/::\~\:\\   /::\__\ _\:\~\ \\/::\\ ___/:/\:\\
/:/\:\ \:\__\ __/:/\/__//\ \:\ \ \__\/:/\:\/\__\/:/__/ \:\__ \/__\:\ \/__//\/://   \:\ \:\ \/__/\/__\:\/://\:\\\/__/
      \:\__\\::/__/   \:\ \:\__\       \:://\:\\      
       \/__/   \:\__\      \:\/://       /://    \:\\   
                \/__/       \:://       /://      \:\__\   
                           \/__/      \/__/      \/__/
>>> fishc = r"""      ___                     ___          ___          ___   
   /\\         ___       /\\      /\__\      /\\   
    /::\\       /\\   /::\\      /://       /::\\   
   /:/\:\\      \:\\   /:/\ \\    /:/__/       /:/\:\\
/::\~\:\\   /::\__\ _\:\~\ \\/::\\ ___/:/\:\\
/:/\:\ \:\__\ __/:/\/__//\ \:\ \ \__\/:/\:\/\__\/:/__/ \:\__\
\/__\:\ \/__//\/://   \:\ \:\ \/__/\/__\:\/://\:\\\/__/
      \:\__\\::/__/   \:\ \:\__\       \:://\:\\      
       \/__/   \:\__\      \:\/://       /://    \:\\   
                \/__/       \:://       /://      \:\__\   
                           \/__/      \/__/      \/__/"""
>>> print(fishc)
      ___                     ___          ___          ___   
   /\\         ___       /\\      /\__\      /\\   
    /::\\       /\\   /::\\      /://       /::\\   
   /:/\:\\      \:\\   /:/\ \\    /:/__/       /:/\:\\
/::\~\:\\   /::\__\ _\:\~\ \\/::\\ ___/:/\:\\
/:/\:\ \:\__\ __/:/\/__//\ \:\ \ \__\/:/\:\/\__\/:/__/ \:\__\
\/__\:\ \/__//\/://   \:\ \:\ \/__/\/__\:\/://\:\\\/__/
      \:\__\\::/__/   \:\ \:\__\       \:://\:\\      
       \/__/   \:\__\      \:\/://       /://    \:\\   
                \/__/       \:://       /://      \:\__\   
                           \/__/      \/__/      \/__/
>>>



1. 打印一个九九乘法表。

标答

>>> for i in range(1, 10):
...   for j in range(1, i+1):
...         print(i, "x", j, "=", i * j, end=' ')
...   print("\n")

注释

range() 函数可创建一个整数列表,一般用在 for 循环中。

函数语法:
range(start, stop[, step])

参数说明:
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是没有5
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

range()是一个函数, for i in range () 就是给i赋值:
比如 for i in range (1,3):
就是把1,2依次赋值给i

例如,range(1,5)给出序列。默认情况下,range 步距取为1。如果我们提供第三个数字,range那么它变成了步距。例如range(1,5,2)得到。
for循环然后遍历这个范围,for i in range(1,5)相当于 for i in ,这就像把序列中的每一个数(或对象)分配给i,一次一个,然后为每个i值执行该语句块。

for i in range(1,10): # i = 1,2,3,4,5,6,7,8,9
    for j in range(1,i+1):
      print(i,"x",j,"=",i*j,end=" ")
    print('\n')

# 第一次i的for循环 即 i=1
# for j in range (1,i+1) 即 for j in range(1,2) 即 j=1
# 第一次j的for循环 即 j=1
# print(i,"x",j,"=",i*j,end=" ") 即 print(1,"x",1,"=",i*j,end=" ") 即 打印1 x 1 = 1空格结尾
# j的for循环结束
# print('\n') 另起一行

# 第二次i的for循环 即 i=2
# for j in range (1,i+1) 即 for j in range(1,3) 即 j= 1,2
# 第一次j的for循环 即 j=1
# print(i,"x",j,"=",i*j,end=" ") 即 print(2,"x",1,"=",i*j,end=" ") 即 打印2 x 1 = 2空格结尾
# 第二次j的for循环 即 j=2
# print(i,"x",j,"=",i*j,end=" ") 即 print(2,"x",2,"=",i*j,end=" ") 即 打印2 x 2 = 4空格结尾
# j的for循环结束
# print('\n') 另起一行

#以此类推


彩虹七号 发表于 2020-1-8 15:02:44

加油{:5_108:}

Judie 发表于 2020-1-9 04:40:07

彩虹七号 发表于 2020-1-8 02:02
加油

谢谢!你也是呀!
2020也要继续努力呀!
{:10_282:}

2311509812 发表于 2020-1-10 02:31:50

这题课后题不会做 看不太懂

Judie 发表于 2020-1-10 08:22:15

2311509812 发表于 2020-1-9 13:31
这题课后题不会做 看不太懂

哪题不会做,看不懂?来,问!
如果我会,我就教你!。。。
如果我不会,那咱论坛问大佬去!
{:10_265:}

坚强的蚂蚁 发表于 2020-1-10 10:30:11

短路逻辑判断:
and 的比较   3 and 4 输出是4#如果是真,就要继续往后运算,直到返回最后一个True值
                  3 and 4 and 5 and 6 输出是6
                  0 and 4 输出是0#如果是假,直接返回False

or的比较      3 or 4 输出是3#一真即真
                  3 or 4 or 5 or 6 输出是3
                  0 or 3 输出是3
对于or 来说,一真即真
对于and来说,一假即假

-------------上面是我的理解,不知道对不对,不对的话指正下--------

Judie 发表于 2020-1-10 11:27:50

坚强的蚂蚁 发表于 2020-1-9 21:30
短路逻辑判断:
and 的比较   3 and 4 输出是4#如果是真,就要继续往后运算,直到返回最后一个True值
   ...

对,很对,非常对!
你理解的比我好很多呢!


完全没毛病!
/2020也要继续努力呢!
{:10_298:}
页: [1]
查看完整版本: 【朱迪的手写学习笔记 之 零基础入门学习Python】004