python学习笔记(2)
这段时间学习遇到了一些问题,所以决定还是看一下书,第一本书《Python编程快速上手---让繁琐工作自动化》
第一章:Python基础
---------------------------------------------
1.数学操作符,优先级从高到底
**(指数)--->%(取模/取余数)--->//(取整/商数取整)--->/(除法)--->*(乘法)--->-(减法)--->+(加法)
2.整形、浮点型和字符串类型
(1)整形:-1,-2
(2)浮点型 : -1.25
(3)字符串: 'a','b','str'(错误信息:SyntaxError: EOL while scanning string literal可能是忘记了字符串的单引号)
3.字符串连接和复制:+号用于连接两个字符串,称为字符串连接操作符
(1)'Alice'+43报错:TypeError: can only concatenate str (not "int") to str
表示将一个整数连接到一个字符串,必须将整数显式的将转换为字符串,然后再进行相关的连接,因为Python不能够自动转换
(2)*用于两个整形或者浮点型的时候,表示乘法。但是*用于一个字符串和一个整形值的时候,它就变成了字符串的复制操作。如'alice'*5,'pythonpythonpythonpythonpython'在进行乘法之后变成了一个大的字符串
4.在变量中保存值
(1)赋值语句
(2)变量名
5.程序剖析
(1)注释:#
(2)print()函数
(3)input()函数,等待用户在键盘上输入一些文本并按下回车键
myName=input(),这个函数值为一个字符串,即用户输入的 文本。
(4)打印用户的名字
print('It is good to meet you,'+myname)
(5)len()函数,可以向len()函数传递一个字符串(或者包含字符串的变量),然后该函数求值为一个整数值,就是字符串的个数
print('the length of your name is:',+len())
(6)str(),int()和float()函数
str()函数将一个整数转换为str字符串类型:str(12),将一个数字转换为字符串的类型。str(29)===>'29';input()函数总是将输入的值转换为字符串,如果想进行相关值的计算,那就需要用到int()函数取得'29'的整数形式
第二章:控制流
1.布尔值的两种类型;True和False。Boolean首字母要大写
2.比较操作符:比较两个值,最后返回的是一个布尔值
== 等于
!= 不等于
< 小于
> 大于
<= 小于等于
>= 大于等于
如果两边的值一样,==(等于)求值为True。如果两边的值不同,!=(不等于),求值为True,整形或者浮点型的值永远不会与字符串类型的值相等,所以'42'==42求值最后的结果为False.
3.==操作符问两个值是否彼此相等,=操作符将右边的值放到左边的变量中来
4.布尔操作符:
5.not操作符
6.混合布尔和比较操作符
7.控制流的元素
8.程序执行
9.控制流语句
(1)if语句包含以下部分:
if关键字
条件(即求值为True或者False)
冒号:
在下一行开始,缩进的代码块
eg: if name=='Alice':
print('Hi,Alice')
(2)else关键字
if语句后面有时候可以跟着else语句。只有if语句的条件为False的时候,else语句才会被执行。
else语句包含以下几个部分:
else关键字:
冒号:
在下一行开始,缩进的代码块
(3)elif:elif总是跟在if或者另外一条elif语句的后面,提供了另一个条件,仅在前面的条件为False的时候才会检查条件
elif关键字:
条件(即求值为True或者False的表达式)
冒号:
在下一行开始,缩进的代码块(称之为elif字句)
if name=='Alice': print('Hi ,Alice.') elif age<12: print('You are not Alice,kiddo') elif age>2000: print('Unlike you,......') elif age>100: print('You are not Alice,grannie')
10.while循环语句
while语句包含下面几个部分:
关键字:
条件(求值为True或者False的表达式);
冒号:
从新行开始,缩进代码块(称之为while子句)
11.break语句
跳出while循环的一条捷径是break子句。如果执行遇到break语句,就会马上退出while循环语句,在代码中,break语句仅仅包含break关键字。
while True: print('please type your name:') name=input() if name=='your name': break print('Thank you!')
(1)第一行创建了一个无限循环,它是一个条件总为True的while循环(表达式True总是表示求值为True)。程序执行的时候总是进入循环,只有遇到break的时候语句执行的时候才会退出
12.continue语句:与break语句一样,continue语句用于循环的内部,如果程序执行遇到了continue语句,就会马上回到循环的开始处,重新对循环条件求值
while True: print('who are you') name=input() if name!='joe': continue print('hello joe ,what is the password?(It is a fish)') password =input() if password== 'swordfish': break; print('Access granted.')
这个地方如果用户输入的名字不是Joe,那么continue语句就会执行跳回到循环开始的地方。再次对条件求值的时候,执行总是进入循环,因为条件是True。如果执行通过了 if 语句,用户就被要求输入口令。如果输入的口令是 swordfish,break 语句运行,执行跳出 while 循环,打Access granted。否则,执行继续到 while 循环的末尾,又跳回到循环的开始。
13.for循环和range()函数。在条件为True的时候,while会进入死循环,如果想让代码块执行固定的次数,可以通过for循环和range()函数来实现其执行的次数。在用于条件时,0,0.0和''被认为是False,其他的值被认为是True
name='' while not name: print('Enter your name:') name=input() print('how many guests will you have?') numOfGuests=int(input()) if numOfGuests: print('Be sure to have enough room for all your guests.') print('Done')
在代码中,for语句看起来像for i in range(5):这样,总是包含以下的部分
for关键字:
一个变量名:
in关键字:
调用range()方法,最多传入3个参数
冒号:
从下一行开始,缩退的代码块(称为for子句)
for循环与while循环等价的情况
print('my name is ') for i in range(5): print('Jimmy Five Times('+str(i)+')')
返回的结果:
my name is
Jimmy Five Times(0)
Jimmy Five Times(1)
Jimmy Five Times(2)
Jimmy Five Times(3)
Jimmy Five Times(4)
print('myname is :')
i=0
while i<5:
print('Jimmy Five Times('+str(i)+')')#str()是将整数值转换为字符串
i=i+1
14.range()函数的而开始、停止和步长参数
range()函数可以用多个函数进行相关的调用,参数之间用逗号进行分开
range()函数第一个参数是开始的值,第二个参数是上限,但是这个上限是不被包含在内的
for i in range(5): print(i)
//这个循环最后打印的是0,1,2,3,4
range()函数也可以有第三个参数,前面两个参数分别是起始值和终止值,第三个参数是步长。步长是每次迭代后循环变量增加的值
for i in range(0,10,2): print(i)
最后返回的是0,2,4,6,8
在for循环生成的序列的方面,range()函数比较灵活,可以使用负数作为步长,然循环计数逐渐减少,而不是在增加
for i in range(5,0,-2): print(i)
返回的值是:5,3,1
15.导入模块
(1)内建函数:包括print(),input(),len()等函数
(2)在开始使用一个模块之前,必须用import语句进行该模块的导入,在代码中,使用import语句,其中,import语句包含以下几个部分:
import 关键字
模块名称
可选的更多模块的名称,之间用逗号进行隔开
import random for i in range(5): print(random.randint(1,10))
random.randint()函数调用求值为传递给他的两个整数之间的一个随机数。因为randint()属于random模块,必须在函数名称之前加上random,告诉python在random模块中寻找这个函数
16.import random,sys,os,math,导入了4个不相同的模块
17.from import 语句
import 语句的另一种形式包括from关键字,之后是模块的名称,import关键字和一个星号,如:from random.import*。
18.用sys.exit()提前结束程序。因为这个函数在sys模块中,所以必须先导入sys模块,才能适用这个。
import sys while True: print('Type exit to exit.') response=input() if response=='exit': sys.exit() print('You typed'+response+'.')
#这是一个死循环,里面没有break语句,结束的唯一方式是用户输入exit,导致sys.exit()被调用