比较(即关系)运算符
python中的比较运算符如下表:
运算符 | 描述 | 示例 |
---|---|---|
== | 检查两个操作数的值是否相等,如果是则条件变为真 | 如a=3,b=3则( a == b)为true. |
!= | 检查两个操作数的值是否相等,如果值不相等,则条件变为真。 | 如a=1,b=3则(a l= b)为true. |
<> | 检查两个操作数的值是否相等,如果值不相等,则条件变为真。 | 如a=1,b=3(a <> b)为true.这个类似于=运算符 |
> | 检查左操作数的值是否大于右操作数的值,如果是,则条件成立。 | 如a=7,b=3则(a > b)为true. |
< | 检查左操作数的值是否小于右操作数的值,如果是,则条件成立。 | 如a=7,b=3则(a<b)为false. |
逻辑运算符
条件测试
检查是否相等(==)
使用‘==’判断相等
a='bmw'
b='bmw'
print(a==b)#输出结果:true
#考虑字符串大小写进行相等判断
first_name='Zhou'
last_name='zhou'
print(first_name==last_name)#输出结果:false
print(first_name.lower()==last_name.lower())#输出结果:true
检查是否不相等(!=)
first_name='Zhou'
last_name='zhou'
print(first_name!=last_name)#输出结果:true
检查多个条件(and,or)
goodNews=1
badNews=0
women=1
men=1
#用and将多个条件连接在一起,它们是&&(且)的关系,必须每个条件都符合,才返回true
print(goodNews==badNews and women==men)#输出结果:False
#用or将多个条件连接在一起,它们是||(或)的关系,只要有一个条件符合,就返回true
print(goodNews==badNews or women==men)#输出结果:True
检查特定值是否包含和是否不包含在列表中(in,not in)
#in:检查特定值是否包含在列表中
print('pear' in fruit)#输出结果:True
#not in:检查特定值是否不包含在列表中
print('tomato' not in fruit)#输出结果:True
If 语句
简单的if语句
if语句是用来进行判断的,其使用格式如下:
if conditional_test:
do something
a=4
if a==4:
print('a的值是4')#条件成立:输出
if-else语句
if-else 语句块类似于简单的if 语句,但其中的else 语句让你能够指定条件测试未通过时要执行的操作
age=17
if age<18:
print("你太小了,不能进来!")
else:
print("进来吧,这里需要你!")
#输出结果:你太小了,不能进来!
if-elif-else结构
age=5
if age<4:
print("你不用付钱")
elif age<8:
print("收你半价")
else:
print("拿钱来")
#输出结果:收你半价
用户输出(input函数)和While循环
函数input() 让程序暂停运行,等待用户输入一些文本。获取用户输入后,Python将其存储在一个变量中,以方便你使用。
函数input() 接受一个参数(这个参数可以是任意的字符串):即要向用户显示的提示 或说明,让用户知道该如何做。
str='please open the widow! \n what the air temperature is:'
tem=input(str)
print("The air temperature is "+tem)
#通过控制台输入的值进行赋值的变量的类型是字符串,可以通过int()将其转换为数字类型
while循环
for 循环用于针对集合中的每个元素都一个代码块,而while 循环不断地运行,直到指定的条件不满足为止
#while循环的简单使用
current_number=1
while current_number<5:
print(current_number)
current_number+=1
#退出循环
myNumber=23
message='你能想出我心中的数字吗?\n你输入数字:'
temp=12
while temp!=myNumber:
temp=int(input(message))
if temp==myNumber:
print("你是我心中的蛔虫!")
elif temp>myNumber:
print("输入大了")
else:
print("输入小了")
#使用标志
active=True
prompt = "\nTell me something, and I will repeat it back to you:"
prompt += "\nEnter 'quit' to end the program. "
while active:
message=input(prompt)
if message=='quit':
active=False
else:
print()
#使用break
while True:
message=input(prompt)
if message=='quit':
break
else:
print()
#在循环中使用continue
current_number=0
while current_number<10:
current_number+=1
if(current_number%2==0):
continue
print(current_number)
函数
函数是带名字的代码块,用于完成具体的工作。
函数是重用的程序段。它们允许你给一块语句一个名称,然后你可以在你的程序的任何地方使用这个名称任意多次地运行这个语句块。这被称为 调用 函数。我们已经使用了许多内建的函数,比如len和range。
函数的定义
函数通过def关键字定义。def关键字后跟一个函数的 标识符 名称,然后跟一对圆括号。圆括号之中可以包括一些变量名,该行以冒号结尾。接下来是一块语句,它们是函数体。
def greet_user():
print("Hello!")
greet_user()#调用函数输出:Hello!
global关键字
在python中,函数内部定义的变量为局部变量,作用范围仅在函数体内。如果希望函数内部的变量能够作用全局,则需要使用global关键字。
def fun(x):
global a
return a + x
a = 2
print(fun(3))#输出结果:5
a = 5
print(fun(3))
print("--------")#输出结果:8
向函数传递信息
实参: 调用函数时,在括号里传入的变量参数。
形参: 函数完成其工作所需的一项信息叫做形参。形参又分为,位置参数、默认参数、可变参数、关键字参数。
def full_name(fi_name,la_name):#这里的fi_name,la_name就是形参
return fi_name.title()+la_name.title()
first_name="zhou"
last_name="yi"
print(full_name(first_name,last_name))#这里的first_name,last_name就是实参
#输出结果:ZhouYi
禁止函数修改列表
要将列表的副本传递给函数,可以像下面这样做:
function_name(list_name[:])
–位置参数: 形参和实参必须保持一致,最好按位置传参,如果位置不对应就指定说明
def info(name,age):
print("姓名:"+name+" 年龄:"+age)
username='joy'
age='18'
info(username,age)
info(age=age,name=username)
#输出结果都为:姓名:joy 年龄:18
–默认参数: 形参和实参可以不一致,如果不想使用默认的参数,在调用函数的时候可以指定(调用函数时,默认参数的值如果没有传入,则被认为是默认值)
def mainFood(food1="米饭",food2="白菜"):
print("我的主食有"+food1+"和"+food2)
mainFood("番薯","土豆")#输出结果:我的主食有番薯和土豆
mainFood("番薯")#输出结果:我的主食有番薯和白菜
mainFood()#输出结果:我的主食有米饭和白菜
–可变参数
fun(*a) :,*a代表可变参数,a是元组数据类型
def sum(*a):
print(*a)#输出结果:1,2,3
print(a)#输出结果:(1,2,3)
sum=0
for ele in a:
sum+=ele
return sum #使用return语句将值返回到调用函数的代码行
print(sum(1,2,3))#输出结果:6
–关键字参数
关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。
使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。
**k 代表可变参数(参数为键值对),k代表这些可变参数组成的字典
# **k 代表关键字参数,可以传入任意多个key-value,是一个字典
def getInfo(name,age,**k):
print("名字是"+name+" 年龄是"+age)
print(k)#输出:{'a': 2, 'b': 3}
getInfo('joy',age,a=2,b=3)#a=2,b=3就代表关键实参
python中的内置函数(部分)
sort()函数
sorted 用于对集合进行排序(这里集合是对可迭代对象的一个统称,他们可以是列表、字典、set、甚至是字符串),它的功能非常强大。
sorted(iterable,cmp,key,reverse)
参数:iterable可以是list或者iterator;
cmp是带两个参数的比较函数;
key 是带一个参数的函数;
reverse为False或者True;
前置知识**:什么是Lamda表达式**(python中)
#ambda表达式是Python中一类特殊的定义函数的形式,使用它可以定义一个匿名函数
la1=lambda x:x**2
print(la1(2))#输出结果:4
#上面的lamda表达式等价于下面
def la2 (x):
return x**2
print(la2(3))#输出结果:9
sorted用法示例:
对列表排序
#对列表排序,返回的对象不会改变原列表
list1=[3,2,4,1,0]
list2=sorted(list1)
print(list2)#输出结果:[0, 1, 2, 3, 4]
print(list1)#输出结果:[3, 2, 4, 1, 0]
#根据自定义规则来排序,使用参数:key
info=['joy','mary','lily','smith']
#根据字符串的长度进行排序
print(sorted(info,key=lambda x:len(x)))#输出结果:['joy', 'mary', 'lily', 'smith']
#sorted 也可以根据多个字段来排序
favorite_fruit=["apple","pear","watermelon","grape"]
#先根据字符串长度排序,后根据字符串首字母的Ascll码进行排序
print(sorted(favorite_fruit,key=lambda x:(len(x),x)))#输出结果:['pear', 'apple', 'grape', 'watermelon']
** 根据自定义规则来排序,对元组构成的列表进行排序 **
tuple_list=[('joy',18),('tom',20),('mary',15)]
print(sorted(tuple_list,key=lambda x:x[1],reverse=False))#输出结果:[('mary', 15), ('joy', 18), ('tom', 20)]
print(sorted(tuple_list,key=lambda x:x[1],reverse=True))#输出结果:[('tom', 20), ('joy', 18), ('mary', 15)]
对字典进行排序
sort 是列表的方法,不适用于字典,所以,采用sorted
1.sorted函数按key值/value值对字典排序
先来基本介绍一下sorted函数,sorted(iterable,key,reverse),sorted一共有iterable,key,reverse这三个参数。
其中iterable表示可以迭代的对象,例如可以是dict.items()、dict.keys()等,key是一个函数,用来选取参与比较的元素,reverse则是用来指定排序是倒序还是顺序,reverse=true则是倒序,reverse=false时则是顺序,默认时reverse=false
scores = {
'A':80, 'C':90, 'B':60}
sorted(scores.values()) # 输出 [60,80,90]
sorted(scores.keys()) # 输出 ['A', 'B', 'C']
2.进行排序并返回排序后的字典
一种使用labmda表达式的方式,x[0]根据key 进行排序,x[1]根据value 进行排序
dict1={
'a':2,'e':3,'f':8,'d':4}
list1= sorted(dict1.items(),key=lambda x:x[1])
print(list1)
#输出:[('a', 2), ('e', 3), ('d', 4), ('f', 8)]
dict1={
'a':2,'e':3,'f':8,'d':4}
list1= sorted(dict1.items(),key=lambda x:x[0])
print(list1)
#输出:[('a', 2), ('d', 4), ('e', 3), ('f', 8)]
模块
在Python中提供了一个方法可以从文件中获取定义,在脚本或者解释器的一个交互式实例中使用, 这样的文件被称为模块;
- 模块中的定义可以导入到另一个模块或主模块中(在脚本执行时可以调用的变量集位于最高级,并且处于计算器模式)
- 模块是包括 Python 定义和声明的文件。文件名就是模块名加上 .py 后缀。
- 模块的模块名(做为一个字符串)可以由全局变量 name 得到
- 模块主要分为内置模块, 三方模块和自定义模块
module1.py
import math
Pi=math.pi
def make_pizza(size,*toppings):
print("make a "+str(size)+"-inch pizza with the following toppings:")
for topping in toppings:
print("-"+topping)
module2.py
import module1#导入模块
from module1 import make_pizza#导入模块中的函数
#或者 import module1.make_pizza
import sys#导入模块
print(module1.Pi)#输出结果:3.141592653589793
make_pizza(20,"盐","辣椒")
for i in sys.argv:
print(i) #输出结果:D:/zhouyi/pythonStudy/basics/secondDay/module2.py