hello大家好,我是一个编程小白,但是比较喜欢富有创造性的东西
最近买了一本书叫python编程快速上手——让繁琐的工作自动化
看到这的你,无论是资深程序员还是想学习的小白,希望能得到你们的精神支持,因为自学其实真的是一条很艰难而且很长的路,我一定要坚持下去,做自己想要成为的自己。
谢谢屏幕另一端的你。
看到了第三章
这个环节叫温故而知新
自学前三章总结笔记奉上
[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
if usernumber==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)
if computer==1:
computernumber='剪刀'
print('电脑出了'+computernumber)
elif computer==2:
computernumber='石头'
print('电脑出了'+computernumber)
elif computer==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?')
'''
|