52lmLM 发表于 2021-4-29 17:19

python自学之章节总结:温故而知新。欢迎新老朋友指导交流哦

hello大家好,我是一个编程小白,但是比较喜欢富有创造性的东西
最近买了一本书叫python编程快速上手——让繁琐的工作自动化

看到这的你,无论是资深程序员还是想学习的小白,希望能得到你们的精神支持,因为自学其实真的是一条很艰难而且很长的路,我一定要坚持下去,做自己想要成为的自己。
谢谢屏幕另一端的你。
看到了第三章
这个环节叫温故而知新
自学前三章总结笔记奉上

#第一章:
#1.1python 的数学操作符,优先级由高到低:**指数%取余数/取模//整除/商数取中/除法*乘法-减法   +加法
#1.2python 的数据类型:整型、浮点型、字符串型
#1.3python 字符串链接:文本+文本、文本*整型数等都可以被程序运行
#1.4python 变量中保存值用=连接,变量名只允许用下划线和字母开头
#1.5学习python别忘了写:print('hello,python')这是为了向伟大的python创始人致敬,也会给你带来好运
'''
print("hello,python!,hello,world!")
'''
#1.6注释不会被程序运行,为了记录各个部分的作用
#1.6print()函数:调用某个值,通常理解为打印某值,如果是文本需要加引号,空值就什么都不用输
#   print('hello,python')
#1.6input()将等待用户输入一些文本,并摁下回车键,多用于和用户交互,通常用于设置变量
'''
input()
a=input()
'''
#1.6len()将返回字符串(或字符串的变量)中字母的个数,返回一个整型值。
'''
len('hello,word')#将会返回9,因为有9个字符
'''
#1.6str() int() float()是负责数据类型转换的函数
#   要注意数据的格式,str是字符串(可以理解为文本)int是整型,float是浮点型(可以理解为有小数点的数据),
'''
a=str(11.1)   #输出11.1的字符串形式
print(a)
a=int(11.1)   #输出11.1的整数,也就是11
print(a)
a=float(11.1)   #输出11.1的有小数点的数据
print(a)
'''
#1.7小结:牢记操作符:+ - * / // % **,其中+和*也可以用在字符串,和三种数据类型:str、int、float
#pirit和input负责基本数值的输入和输出


#第二章
#2.1 布尔值,指Ture和False,意为对和错,他们可以被条件赋值
#2.2比较操作符:== != < > <= >=
#2.3布尔操作符:and、or、not
#   and是一假则假,or是一真则真,not用来否决后边的操作或数值
#2.5控制流的元素 主要有两个
#   条件:给系统用以判断的条件
#   代码块:1缩进增加时,代码块开始。2代码块可以包含其他代码块。3缩进减少为0,与上边的代码块或条件对齐时,代码块结束
#2.6程序的执行:程序的执行不是一行一行的代码有序执行,有可能跳过某几行或整个子句
#2.7控制流语句:if else elif while
#if语句的元素:1if的关键字 2条件 3冒号 4在下一行开始,缩进的代码块
#   if name=='leeem'
#       print('hi,leeem')
#elif 多用于if之后,表示否则如果,需要冒号,上述条件之外的情况发生了的补充条件
#else 多用于if之后,方式和elif雷同,但它囊括了如果所有不满足条件的情况下的动作
#whlie循环语句的要素:1while的关键字 2条件 3冒号 4从下一行开始缩进的代码。意为当。。的时候
#while语句会循环输出结果,直到满足条件。也就是会输出多次结果
#break语句:和while联用,用于打断循环,break之后的代码将不会被输出
#continue语句:当代码跑到该语句时,会直接跳到while处重新进入循环。
#for循环和range语句:这个组合可以实现你想让一个代码块循环的次数,利用range给它一个限制
#等价的while循环:其实while和for在做相同的事情,但for显得更加简洁
#range的值:range(循环范围)、range(起始值,结束值)、range(起始值,结束值,递进值)
#2.8导入模块:import要素:1import关键字 2要导入模块的名称 3 可以选择更多的模块,用逗号分隔
#2.9用sys.exit结束程序,该命令可以终止程序
#2.10小程序:猜数字
#这是一个猜数字小游戏
'''
import random
print('hello this is a guess the number game')
print('i am think of a number between 1 and 20')
print('then,plase take a guess')
mynumber=random.randint(1,20)
for guessnumber in range(1,7):

    usernumber = int(input())
    if usernumber>mynumber:
      print('younumber is too high.')
      print('guess again')
    elif usernumber<mynumber:
      print('you number is too low.')
      print('guess again')
    else:
      break
ifusernumber==mynumber:
    print('you are NB!!!!!!,you just use'+str(guessnumber)+'s')
else:
    print('you are LJ,mynumber is '+str(mynumber))
'''
#2.11小程序:剪刀石头布
'''
import random
print('嗨,现在我们来玩一个剪刀石头布的游戏~')
#玩家端
while True:
    print('请输入剪刀、石头、布或退出')
    player = input()
    computer = random.randint(1, 3)
    if player=="剪刀":
      playernumber=1
      print('您输入了剪刀')
    elif player=="石头":
      playernumber=2
      print('您输入了石头')
    elif player=="布":
      playernumber=3
      print('您输入了布')
    elif player=="退出":
      break
    else:
      print('您的输入有误,请输入"剪刀","石头"或"布"')
      continue
#电脑端
    print(computer)
    ifcomputer==1:
      computernumber='剪刀'
      print('电脑出了'+computernumber)
    elifcomputer==2:
      computernumber='石头'
      print('电脑出了'+computernumber)
    elifcomputer==3:
      computernumber='布'
      print('电脑出了'+computernumber)
    else:
      print('程序出现错误啦')
#判断分数
    if computer==playernumber:
      print('平局啦,还要载来一把么???输入(Y)es 或者(N)o')
      tf=input()
      if tf=='Y':
            continue
      elif tf=='N':
            print('下次再见咯')
            break
    elif computer==2 and playernumber==1 or computer==3 and playernumber==2or computer==1 and playernumber==3:
      print('你输啦,还要再来一把么???输入(Y)es 或者(N)o')
      tf=input()
      if tf=='Y':
            continue
      elif tf=='N':
            print('下次再见咯')
            break
    elif computer==1 and playernumber==2 or computer==2 and playernumber==3or computer==3 and playernumber==1:
      print('我输啦,我不服!可以再来一把么???输入(Y)es 或者(N)o')
      tf=input()
      if tf=='Y':
            continue
      elif tf=='N':
            print('下次再见咯')
            break
'''


#2.12小结:总结一下:吃透了循环语句起始已经能编写出很多有意思的小程序啦


#第三章 函数
#3 调用函数:def()
#3.1def参数和语句:创造一个函数,他可以无关你代码中的其他部分,但是你必须先创建再调用它
'''
def hello(name):
    print('hello,'+name)
hello('eeem')         #输出 hello,eeem,你调用的函数括号里的变量可以在调用的时候赋值,因为你已经给了你的函数变量的定义
hello('zzzj')         #输出 hello,zzzj
'''
#3.2返回值和return语句:return包含两要素:1return的关键字 2函数应该返回的值和表达式
'''
import random                   #引入随机数库
def dedaodaan(daanshuzi):       #调用函数
    if daanshuzi==1:            #如果随机数==1
      return '数字一'          #返回字符串"数字一"
    elif daanshuzi==2:          #如果随机数==2
      return '数字二'          #返回字符串"数字二"
    elif daanshuzi==3:          #以下同上
      return '数字三'
    elif daanshuzi==4:
      return '数字四'
    elif daanshuzi==5:
      return '数字五'
    elif daanshuzi==6:
      return '数字六'
r=random.randint(1,6)         #r=随机数库.范围函数(1,6)
forture=dedaodaan(r)            #新的赋值fortune=调用的函数(随机数库生成的随机数)
print(forture)                  #输出赋值forture
'''
#3.3none值:表示空,或什么都没有
#3.4关键字参数和print()函数:end sep
'''
#end:
print('hello')
print('world')

print('hello',end='')       #输出helloword,end=’‘取消了默认的换行符
print('world')
#sep:
print('cats','dogs','mice')
print('cats','dogs','mice',sep=',')    #cats,dogs,mice,sep把默认的空格修改成了,
'''
#3.5调用栈:是一种关系,被调用的函数中允许包含其他函数,仔细观察以下案例的运算顺序,你就会明白调用栈的NB之处。
'''
def a():
    print('a() starts')
    b()
    c()
    d()
    print('a() end')
def b():
    print('b() satrts')
    c()
    d()
    print('b() end')
def c():
    print('c() starts')
    d()
    print('c() end')
def d():
    print('d() starts')
    print('d() end')
a()
'''
#3.6局部和全局作用域
#局部变量不能再全局作用域中使用
'''
def spam():             #输出报错,因为局部变量不能再全局作用域中使用
    egg=12345
spam()
print(egg)
'''
#局部作用域不能使用其他局部作用域内的变量
'''
def spam():             #输出了12345,但显然不是你想要的的结果,原因如上
    egg=12345
    bacon()
    print(egg)
def bacon():
    ham=1011
    egg=0
spam()
'''
#全局变量可以在局部作用域中读取
'''
def spam():             #输出100
    print(egg)
egg=100
spam()
print(egg)
'''
#名称相同的局部变量和全局变量
'''
def spam():            
    egg='spam的结果'
    print(egg)
def bac():
    egg='bac的结果'
    print(egg)
    spam()
    print(egg)
egg='全局变量 的结果'
bac()
print(egg)
'''
#3.7global语句:global的作用是命令局部的赋值变量可以被全局调用
'''
def a():                        #输出局部域中赋值的鸡蛋
    global egg
    egg='局部域中赋值的鸡蛋'
egg='gloabl'
a()
print(egg)
'''
#3.8异常处理:try 和 except
'''
def a(h):         #会报错
    return 42/h
print(a(2))
print(a(12))
print(a(0))
print(a(1))
'''
'''
def a(h):                     #不会报错
    try:
      return 42/h
    except ZeroDivisionError:
      print('错了也没事儿~')
print(a(2))
print(a(12))
print(a(0))
print(a(1))


def a(h):                     #不会报错,try和except的通常写法
    return 42 / h
try:
    print(a(2))
    print(a(12))
    print(a(0))
    print(a(1))
except ZeroDivisionError:
    print('错了也没事儿~')
    '''
'''
#3.9不管他会一直跑的小程序:Zigzag
import time,sys             #导入时间和系统模块,时间用于控制动画播放的快慢,系统用于及时停止
konggeshuliang=0            #需要有多少个空格
panduantiaojian=True      #给一个判断条件

#给出一个判断条件

try:                        #避免报错
    while True:             #当没有错误的时候(意为永远循环)
      print(''*konggeshuliang,end='')       #空格*空格数量+*****
      print('******')
      time.sleep(0.01)                        #间隔时间
      if panduantiaojian:                     #如果+变量名=当变量为Ture时
            konggeshuliang=konggeshuliang+1   #空格数量=空格数量+1
            if konggeshuliang==15:            #如果空格数量=15
                panduantiaojian=False         #判断条件空格赋值错误
      else:                                 #否则(当空格数量不等于15)
            konggeshuliang=konggeshuliang-1   #空格数量=空格数量-1
            if konggeshuliang==0:               #如果空格数量=0
                panduantiaojian=True            #判断条件空格赋值正确
except KeyboardInterrupt:                     #除了键盘打断,try永远执行
    sys.exit()                                  #程序结束
'''
#3.10小结:
#3.11习题
#3.12项目联系
'''
Collatz 序列
编写一个名为 collatz()的函数,它有一个名为 number 的参数。如果参数是偶数,
那么 collatz()就打印出 number // 2,并返回该值。如果 number 是奇数,collatz()就打
印并返回 3 * number + 1。
然后编写一个程序,让用户输入一个整数,并不断对这个数调用 collatz(),直
到函数返回值1(令人惊奇的是,这个序列对于任何整数都有效,利用这个序列,
你迟早会得到 1!既使数学家也不能确定为什么。你的程序在研究所谓的“Collatz
序列”,它有时候被称为“最简单的、不可能的数学问题”)。
记得将 input()的返回值用 int()函数转成一个整数,否则它会是一个字符串。
提示 如果 number % 2 == 0,整数 number 就是偶数,如果 number % 2 == 1,它
就是奇数。
这个程序的输出看起来应该像这样:
Enter number:
3
10
5
16
8
4
2
1
'''
'''
#解题:先定义一个函数,再在代码中引用循环
def collatz(number):            #创建函数
    if number % 2 == 0:         #如果这个值能被2整除
      result = number/2       #结果=number/2
      print(number//2)      #输出题目中要的结果
    else:                     #否则(如果不能被2整除)
      result = number*3+1   #结果=number*3+1
      print(result)         #输出结果
    return result               #直接输出结果   

print('请输入一个任意数位的整数')    #告诉玩家条件
try:                            #报错去死
    number = int(input())       #注意:新的赋值 number
    while number != 1:          #当number不等于1时

      number = collatz(number)#number就等于函数collatz
      continue                #while到此循环往复

    print("程序已经执行完毕啦")   #完成循环后打印"程序已经执行完毕啦"
except:                         #报错了输出啥
    print('请输入一个整数?听懂了么?我用英语再给你说一遍')
    print('Please enter an integer? Does that make sense?')
'''





Louisgn 发表于 2021-4-29 18:23

本帖最后由 Louisgn 于 2021-4-29 18:25 编辑

加油,坚持下去{:301_994:}

愚鱼娱渔 发表于 2021-4-29 18:26

len('hello,word')返回值为10吧{:1_926:}

52lmLM 发表于 2021-4-29 18:35

愚鱼娱渔 发表于 2021-4-29 18:26
len('hello,word')返回值为10吧

对哈哈哈哈哈,这是我之前的一个小问题,标点也算在技术之内,但是我想看看我这帖子里的代码有没有人看 埋了个点哈哈哈哈哈哈哈哈哈

djxding 发表于 2021-4-29 18:44

我也准备想学这个东西。
听说它可以让工作更加简单、高效。

你的总结收藏了。

asuka11eva 发表于 2021-4-29 19:24

python我也是从自学到放弃{:1_909:}

fenga6 发表于 2021-4-29 19:35

#pirit和input负责基本数值的输入和输出
35行单词写错了

SKgarlic 发表于 2021-4-29 20:08

谢谢分享

筱木头 发表于 2021-4-30 09:11

我看你学的很快,请问你学完就都能背下来了?不给自己留一二天的时间吗?我咋看着那么费劲啊,还是你厉害

52lmLM 发表于 2021-4-30 10:12

筱木头 发表于 2021-4-30 09:11
我看你学的很快,请问你学完就都能背下来了?不给自己留一二天的时间吗?我咋看着那么费劲啊,还是你厉害

背不下来但是差不多,原因主要有三个,第一有一定的英语基础,便于理解语句(翻译过来和中文说话其实差不多),理解了以后在书写几遍运行几遍起码三天内不会玩,第二我明确地知道自己想要什么样的效果,有学习的动力,第三有学习方法,一个不太好理解的语句我会反复演练反复推敲。其实我并没有认为有多快。。。。。。
页: [1] 2
查看完整版本: python自学之章节总结:温故而知新。欢迎新老朋友指导交流哦