回顾练习:输出语句
输出 “Go Big Or Go Home!"
print("Go Big Or Go Home!")
1.导入库
在python中导库也称为导包,或者叫导入模块,和Java中的导包概念相同,就是将Python自带的包或第三方的包或自定义的包和函数(或称为API)导入到当前的文件中以供使用。
在 python 用 import 或者 from…import 来导入相应的模块。
将整个模块(假设模块名为 mymodule)导入,格式为: import mymodule 从某个模块中导入某个函数,格式为: from mymodule import myfunction 从某个模块中导入多个函数,格式为: from mymodule import firstfunc, secondfunc, thirdfunc 将某个模块中的全部函数导入,格式为: from mymodule import * 将某个模块改名(改为s),格式为:import mymodule as s
示例:sys模块是与python解释器交互的一个接口。sys 模块提供了许多函数和变量来处理 Python 运行时环境的不同部分。
# 练习1 import sys print('================Python import mode==========================') print('命令行参数为:') for i in sys.argv: print(i) print('\n python 路径为',sys.path)
示例:输出当前系统的时间
#练习2 import datetime print("当前时间:"+str(datetime.datetime.now()))
注:str是一个用于类型转换的函数,可以将目标转换为字符串类型
2.条件语句
学习编程语言必学的一个知识点,用于各种业务条件的流程判断等。
if 判断条件
if:
执行语句……
条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。
a=0 b=1 if a>b: print(a,">",b)
if else分支语句
if:
执行语句……
else:
执行语句……
程序语言指定任何非0和非空(null)值为true,0 或者 null为false。
编程中 if 语句用于控制程序的执行,基本形式为:
a=1 b=0 if a>b: print(a,">",b) else: print(a,"<",b)
if elif else多分支语句
if:
执行语句……
elif:
执行语句……
else:
执行语句……
if 语句的判断条件可以用>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)来表示其关系。
当判断条件为多个值时,可以使用以下形式:
num = 5 if num == 3:# 判断num的值 print 'boss' elif num == 2: print 'user' elif num == 1: print 'worker' elif num < 0: # 值小于零时输出 print 'error' else: print 'roadman' # 条件均不成立时输出
由于 python 并不支持 switch 语句,所以多个条件判断,只能用 elif 来实现,如果判断需要多个条件需同时判断时,可以使用 or (或),表示两个条件有一个成立时判断条件成功;使用 and (与)时,表示只有两个条件同时成立的情况下,判断条件才成功。
当if有多个条件时可使用括号来区分判断的先后顺序,括号中的判断优先执行,此外 and 和 or 的优先级低于>(大于)、<(小于)等判断符号,即大于和小于在没有括号的情况下会比与或要优先判断。
你也可以在同一行的位置上使用if条件判断语句,如下实例:仅限代码块只有一行的情况下
# 实例 5 var = 100 if ( var == 100 ) :print "变量 var 的值为100" print "Good bye!"
注:python编码基本语法格式
python在编写代码块时,使用代码缩进和冒号:来表示代码块的分割。缩进可以使用空格或Tab键来实现,一般采用四个空格作为一个缩进量。在python中,定义函数、类、控制语句等,行为的冒号和下一行的缩进表示一个代码块的开始,而缩进结束,表示一个代码块的结束。python对代码块的缩进要求非常严格,同一个级别的代码块缩进量必须相同。否则会抛出SystemError异常。
编码规范知识贴: * 每个import语句只导入一个模块,尽量避免同时导入多个 * 不要在行为添加分号 ; * 每行不超过80个字符,如果超过,建议用( )将内容连接起来,避免使用 "\"进行连接 * 使用空行可以增加代码的可读行 * 应避免在循环中使用 + +=累加字符串。因为字符串是不可变的,这样做会创建很多临时对象,推荐将每个字符串加入列表中,使用join进行连接。 * 使用异常处理结构提高程序的容错性。
逻辑判断示例:
#练习3 input函数用于接受控制台输入,无论输入的是数字还是字符串,都会当成字符串处理 height = input("请输入您的身高:") print("您的身高:"+height) weight = input("请输入您的体重:") print("您的体重:"+weight) #运算时需要将字符串转换为浮点型 bmi = float(weight)/(float(height)*float(height)) print("您的BMI指数为:"+str(bmi)) #判断身材是否合理 if bmi<18.5: print("您的体重过轻") elif bmi>=18.5 and bmi<24.9: print("正常范转,请保持") elif bmi>=24.9 and bmi<29.9: print("您的体重过重") else: print("过于肥胖,请减肥!")
常类型转换函数:
### 3.循环语句
python中常用的循环语句主要有下面四个:
while循环
while … else循环
for 循环
for … else 循环
下面一一介绍
while循环语句
while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。
count = 0 while (count < 9): print 'The count is:', count count = count + 1 print("Good bye!")
While 循环语句 else
while … else 在循环条件为 false 时执行 else 语句块:
count = 0 while count < 5: print(count, " is less than 5") count = count + 1 else: print(count, " is not less than 5")
for 循环语句
for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
for letter in 'Python': # 第一个实例 print("当前字母: %s" % letter) fruits = ['banana', 'apple', 'mango'] for fruit in fruits: # 第二个实例 print('当前水果: %s'% fruit) print("Good bye!")
for 循环语句 else
在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。
#练习4 求10-20之间的质数 (质数是指除了1和自己外没有别的因数的数字) for num in range(10,20): # 迭代 10 到 20 之间的数字 for i in range(2,num): # 根据因子迭代 if num%i == 0: # 确定第一个因子 j=num/i # 计算第二个因子 print('%d 等于 %d * %d' % (num,i,j)) break # 跳出当前循环 else: # 循环的 else 部分 print('%d 是一个质数' % num)
嵌套循环
在一个循环体里面嵌入另一个循环。
- while与while嵌套
- for与for嵌套
你可以在循环体内嵌入其他的循环体,如在while循环中可以嵌入for循环, 反之,你可以在for循环中嵌入while循环。
以下实例使用了嵌套循环输出2~100之间的素数(素数就是质数):
# 练习 5 求素数 i = 2 while(i < 100): j = 2 while(j <= (i/j)): if not(i%j): break j = j + 1 if (j > i/j) : print(i," 是素数") i = i + 1 print("Good bye!")
循环控制语句
循环控制语句可以更改语句执行的顺序。Python支持以下循环控制语句:
break 语句
Python break语句,就像在C语言中,打破了最小封闭for或while循环。
break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。
break语句用在while和for循环中。
如果您使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码
for letter in 'Python': # 第一个实例 if letter == 'h': break print('当前字母 :', letter) print("Good bye!")
continue 语句
Python continue 语句跳出本次循环,而break跳出整个循环。
continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。
continue语句用在while和for循环中。
for letter in 'Python':# 第一个实例 if letter == 'h': continue print('当前字母 :', letter) print("Good bye!")
pass 语句
Python pass 是空语句,是为了保持程序结构的完整性。
pass 不做任何事情,一般用做占位语句。
for letter in 'Python': if letter == 'h': pass print('这是 pass 块') print('当前字母 :', letter) print("Good bye!")
4.运算符
算术运算符
注:在使用%求余时,如果除数是一个负数,那么结果也是一个负数
小贴士: 算术运算的优先级和数学中的运算优先级是一样的 优先级由高到低排序如下: 第一级: ** 第二级: *,/,%,// 第三级: +,-
在Python中,* 运算符还可以用于字符串中,计算结果就是字符串重复指定次数的结果。
print("M"*10) #输出10个重复的M print("@"*10) #输出10个重复的@ print(" "*10,"M"*5) #先输出10个空格,再输出5个M
注:使用除法时(/或//)和求余(%)时 除数不能为0
# 练习 6 算术运算 python = 90 java = 89 c = 98 sub = python-java print("java和python的分差是:"+str(sub)) avg = (python+java+c)/3; print("三门学科的平均分是:"+str(avg))
赋值运算符
1.简单赋值运算符(=)
简单赋值运算符表示为c = a + b,将 a + b 的运算结果赋值为 c。
2.加法赋值运算符(+=)
加法赋值运算符表示为c += a,等效于 c = c + a。
3.减法赋值运算符(-=)
减法赋值运算符表示为c -= a,等效于 c = c - a。
4.乘法赋值运算符(*=)
乘法赋值运算符表示为c *= a,等效于 c = c * a。
5.除法赋值运算符(/=)
除法赋值运算符表示为c /= a,等效于 c = c / a。
6.取模赋值运算符(%=)
取模赋值运算符表示为c %= a 等效于,c = c % a。
7.幂赋值运算符(**=)
幂赋值运算符表示为c **= a,等效于 c = c ** a。
8.取整除赋值运算符(//=)
取整除赋值运算符表示为c //= a,等效于 c = c // a。
比较运算符
注:在python中,当需要判断一个变量是否介于两个值之间时,可以采用"值1<变量<值2"的形式,如 “0<a<100”
逻辑运算符
逻辑运算是对真和假两种布尔类型的值进行运算,运算的结果仍为一个布尔值。常用的是逻辑与(and),逻辑或(or),逻辑非(not)。
示例:
#练习7 逻辑运算符 print("手机店正在打折,活动进行中...") strWeek = input("请输入中文星期(如星期一):") intTime = int(input("请输入时间中的小时(范围:0~23):")) #判断是否满足活动参与条件 if(strWeek=="星期二" and (intTime>=10 and intTime<=11)) \ or (strWeek=="星期五" and (intTime>=14 and intTime<=15)): print("恭喜你,获得了折扣活动参与资格,快快选购吧!") else: print("对不起,你来晚一步,期待下次活动....")
位运算
位运算是把数字看作二进制来进行运算的,需要先将执行运算的数字转换成二进制,再执行运算。
&:按位与操作,只有 1 &1 为1,其他情况为0。可用于进位运算。 |:按位或操作,只有 0|0为0,其他情况为1。 ~:逐位取反。 ^:异或,相同为0,相异为1。可用于加操作(不包括进位项)。 <<:左移操作,2的幂相关 >>:右移操作,2的幂相关
1.位与运算:&
示例:12&8 进行位运算,先将12和8转换为二进制 位运算后还是8
0000 0000 0000 1100 &0000 0000 0000 1000 -------------------- 0000 0000 0000 1000
2.位或运算:|
示例:4|8 进行或运算,先将4和8转换为二进制 或运算后是12
0000 0000 0000 0100 &0000 0000 0000 1000 -------------------- 0000 0000 0000 1100
3.位异或运算:^
示例:31^22 进行位或运算,先将31和22转换为二进制 位或运算后是9
0000 0000 0001 1111 &0000 0000 0001 0110 -------------------- 0000 0000 0000 1001
4.位取反运算:~
示例:~123 进行取反运算,先将123转换为二进制 取反运算后是-124
~0000 0000 0111 1011 -------------------- 1111 1111 1000 0100
5.左移位运算:<<
左移位运算符<<是将一个二制操作数向左移动指定的位数,左边(高位端)溢出的位被丢弃,右边(低位端)的空位用0补充。左移位运算相当于乘以2的n次幂。
示例:48左移1位
48的二进制数为 0011 0000 ,将其左移1位,(00110000<<1)=01100000 ,转换为十进制就是96. 也可以直接用48*2。如果左移2位,就是48*2*2
6.右移位运算:>>
右移位运算符>>是将一个二制操作数向右移动指定的位数,右边(低位端)溢出的位被丢弃,左边(高位端)的空位用0或1补充(如果左侧最高位是0则补0,最高位是1则补1)。左移位运算相当于除以2的n次幂。
示例:右移1位
48的二进制数为 0011 0000 ,将其右移1位,(00110000>>1)=00110000 ,转换为十进制就是24. 也可以直接用48/2。如果左移2位,就是48/(2*2)
运算符的优先级: