变量:
每个变量都存储了一个值-与变量信息相关的值。
在程序中可随时修改变量的值,而python将始终记录变量的最新值。

命名和使用:
》由字母、数字、下划线组成    ,但不能以数字开头。
》最好使用小写的变量名

双引号里可以有单引号,单引号里也可以有双引号;
注意:双引号里不可以有双信号,单引号里不可以有单引号;
---------------
方法:

name="zhao xin"
 print(name.title()) //每个单词的首字母都大写 结果 Zhao Xin
 print(name.upper()) //全部大写
 print(name.lower()) //全部小写拼接字符串:
 用+拼接添加空白:
 制表符:\t
 换行:\n删除空白:
 rstip() //删除字符串末尾空白,但不会将更改后的值赋给变量
 示例:
 name="zhao xin "
 print(name.rstrip()+"123")
 print(name+"123")lstip() //删除字符串开头空白,但不会将更改后的值赋给变量
 stip() //删除字符串两端空白,但不会将更改后的值赋给变量
 -------
 整数
 可以进行加减乘除运算;两个**表示乘方运算;浮点数
 注意:结果包含的小数位数可能是不确定的;使用str()函数避免类型错误
 str() //将非字符串值表示为字符串注释:
 单行注释:#
 文档注释:...   ... ------列表
 按特定顺序排列的元素组成。
 []表示列表,逗号分隔元素示例:
 list1=[1,2,3,4,5,6]
 list2=["a生","老","病","死","求不得","恨别离"]
 print(list1)
 print(list1[0])
 print(list2[0].title()) #每个单词首字母大写
 print(list1[-1]) #返回列表的最后一个元素 ;-n 返回倒数第n个元素------修改、添加、删除元素
 list2.append("rensheng") #添加元素到列表末尾
 list2.insert(0,"charu") #插入元素,在索引0处
 del list2[0] #删除元素,在索引0处list2=["a生","老","病","死","求不得","恨别离"]
 #方法pop()可删除列表末尾的元素,并可以接着使用它
 print("删除前"+list2[0]+list2[1]+list2[2]+list2[3]+list2[4]+list2[5])
 popped_list2=list2.pop()
 print("删除后:"+list2[0]+list2[1]+list2[2]+list2[3]+list2[4])
 print("删除的元素:"+popped_list2)
 popped_list2=list2.pop(1) #弹出索引n处的元素
 list2.remove("老") #删除知道的元素的值list2=["a生","c老","b病","f死","s求不得","d恨别离"]
 list2.sort() #按字母顺序排列,永久性排序
 print(list2)
 list2.sort(reverse=True) #按字母顺序相反顺序排列,永久性排序
 print(list2)
 list3=sorted(list2) #临时排序
 list2.reverse() #反转列表元素排序,永久性排序
 len(list2) #列表长度========第四章
 list2=["a生","c老","b病","f死","s求不得","d恨别离"]
 #for循环遍历列表
 for list in list2:  
     print(list)
 #良好的命名习惯:
 for cat in cats:
 for dog in dogs:#在代码for list in list2:后面,每个缩进的代码行都是循环的一部分,且将针对列表中的每个值都执行一次。
 list2=["a生","c老","b病","f死","s求不得","d恨别离"]
 for list in list2:  #for循环遍历列表
     print("让我们欢迎每个成员,"+list.title())    
 #没有缩进的代码只执行一次
 print(list2)#打印数字1~4
 for value in range(1,5): #函数range():从指定的第一个值开始数,到达指定的第二个数停止
     print(value)#使用range()创建数字列表
 numbers=list(range(1,6))
 print(numbers)#指定步长
 even_numbers=list(range(1,10,3)) #到达或超过10,结束
 print(even_numbers)#前10个整数的平方加入到列表中
 lists=[]
 for list in range(1,11): #循环1~10
     list=list**2         #每个值得平方
     lists.append(list)   #追加到列表中
 print(lists)             #打印列表#前10个整数的平方加入到列表中(简化)
 lists=[]
 for list in range(1,11):    #循环1~10
     lists.append(list**2)   #每个值的平方追加到列表中
 print(lists)                #打印列表
 print(max(lists)) #最大值
 print(min(lists)) #最小值
 print(sum(lists)) #和#列表解析
 values=[list**2 for list in range(1,11)]
 print(values)语法:列表名=[表达式 for循环]
#切片
 lists=['a生','c老','b病','f死','s求不得','d恨别离']
 print(lists[1:4]) #打印下标1,2,3,即 ['c老','b病','f死']
 print(lists[1:])  #打印下标1到末尾的元素
 print(lists[-4:])  #打印最后n个元素for list in lists[:3]:  #遍历切片,遍历前三个元素
     print(list)
     
 #复制列表
 listcopy=lists[:]
 print("复制的元素为:")
 print(listcopy)lists=['a生','c老','b病','f死','s求不得','d恨别离']
 #复制列表
 listcopy=lists[:]   #lists遍历后,赋给listcopy
 lists.append("12")
 listcopy.append("34")
 print(lists)
 print(listcopy)#元组,里面的值不可修改
 demo=(200,40)
 print(demo[0])
 print(demo[1])
 for demo1 in demo: #遍历元组
     print(demo1)
     
 #给元组重新赋值
 demo=(100,20)
 for demo1 in demo: #遍历元组
     print(demo1)#for in 循环  if判断
cars=['any','bike','dioe','oo','mm']
 for car in cars:
     if car=='any':  #检查是否相等时,区分大小写
         print(car.upper())
     else:
         print(car.title())# != 不相等
 #and检查多个条件都满足
 #or检查多个条件满足其中一个
 #in 检查特定值是否在列表中
 #not in 检查特定值不在列表中#if-else
 age=18
 if age>=18:
     print("是个成年人了!")
 else:
     print("还是个孩子")#if-elif-else
 age=17
 if age<4:
     print("小于4")
 elif age<18:
     print("大于4小于18")
 else:
     print("大于或等于18")#检测列表是否为空
 lists=[]
 if lists:  #若为空,则返回false
     print("列表不为空")
 else:
     print("列表为空")#使用多个列表
 list1s=["a","b","c","d"]
 list2s=["a","f"]for list2 in list2s:
     if list2 in list1s:
         print("该元素包含在list1s列表中,为:")
         print(list2)
     else:
         print("该元素不包含在list1s列表中,为:")
         print(list2)----字典
 #字典 一系列键-值对
 alien_0={'color':'green','point':5}
 print(alien_0['color'])
 print(alien_0['point'])
 new_point=alien_0['point']
 print(str(new_point)) #整数转为字符串#添加键-值对
 alien_0['x_position']=0
 alien_0['y_position']=25
 print(alien_0) #python不关心键值对的添加顺序,只关心键-值之间的关联关系#创建字典
 alien_0={}
 alien_0['color']='green'
 alien_0['point']=5
 print(alien_0)
 #修改字典中的值
 alien_0['color']='yellow'
 print(alien_0)#示例:
 alient_0={'x_possition':0,'y_position':25,'speed':'medium'}
 print("x的坐标:"+str(alient_0['x_possition']))if alient_0['speed']=='slow':
     x_increment=1
 elif alient_0['speed']=='medium':
     x_increment=2
 else:
     x_increment=3
     
 alient_0['x_possition']=alient_0['x_possition']+x_increment
 print("x的坐标:"+str(alient_0['x_possition']))alien_0={'color':'green','point':5}
 del alien_0['color'] #删除键值对
 print(alien_0)#由类对象组成的字典
 favorite_languages={
     'join':'c',
     'sun':'python',
     'claoe':'java',
     'lory':'c#',
     'machle':'c++',
 }print("Machle's favorite languages is "
 +favorite_languages['machle'].title())#遍历字典
 #遍历所有的键值对
 user_0={
     'username':'zhao xin',
     'first':'zhao',
     'fast':'xin',
 }
 for key,value in user_0.items(): #items()方法,返回一个键-值对列表
     print("key:"+key)
     print("value:"+value+"\n")#示例:
 favorite_languages={
     'join':'c',
     'sun':'python',
     'claoe':'java',
     'lory':'c#',
     'machle':'c++',
 }for name,languages in favorite_languages.items():
     print(name.title()+"'s favorite languages is "+languages.title()+"\n")for name in favorite_languages.keys(): #遍历字典中的所有键
     print(name.title())
 print("\n")
 for name in favorite_languages.values(): #遍历字典中的所有值
     print(name.title())#示例:
 favorite_languages={
     'join':'c',
     'sun':'python',
     'claoe':'java',
     'lory':'c#',
     'machle':'c++',
 }friends=["sun","join"]
 for name in favorite_languages:
     if name in friends:
         print("hello "+name.title())
         
 for name in sorted(favorite_languages.keys()): #对列表中的值排序
     print(name.title())for name in set(favorite_languages.values()): #set() 唯一无序
     print(name.title())#嵌套
 alien_0={'color':'green','point':'5'}
 alien_1={'color':'blue','point':'10'}
 alien_2={'color':'back','point':'15'}aliens=[alien_0,alien_1,alien_2]
 for alien in aliens:
     print(alien)
     
 #在字典中存储列表
 pizza={
     '外皮':'薄脆',
     '配料':["土豆","牛肉"],
 }
 print("你点的是"+pizza['外皮']+"的pizza,它带有的配料如下:")
 for 配料 in pizza['配料']:
     print(配料)#在字典中存储字典
 users={
     'join':{
         'age':'18',
         'sex':'man',
     },
     'sun':{
         'age':'20',
         'sex':'man',
     },
 }for username,userinfo in users.items():
     print("姓名:"+username.title())
     print("年龄:"+userinfo['age'])
     print("性别:"+userinfo['sex']+"\n")-------第七章
 #input()函数 输入的为字符串
 message=input("请输入需要展示的东西:")
 print(message)name=input("请输入你的名字")
 print("Hello "+name)prompt="请输入你的姓名\n"
 prompt+="你的名字:"name=input(prompt)
 print(name)#使用int()来获取数值输入 转化为整数
age=input("请输入你的年龄:")
 if int(age) > 18:
     print("已成年")
 else:
     print("未成年")    #求模运算符(取余)
 num1=input("请输入一个正整数,以回车键结束:")
 num1=int(num1)
 num2=num1%2
 if num2==0:
     print("这是个偶数")
 else:
     print("这是个奇数")#while循环
 num1=1
 while num1<=5:
     print(str(num1)+"\n")
     num1+=1#while循环
 active=True
 while active:
     message=input("请输入要展示的值")
     if message=='q':
         break  #跳出循环 (active=False)
     else:
         print(message)#continue 跳出本次循环
 #使用while循环处理列表和字典
 #在列表之间移动元素
 unconfirmed_users=['alin','join','macle']
 confirmed_users=[]
 while unconfirmed_users:
     current_user=unconfirmed_users.pop() #删除方法pop(),删除列表末尾的元素
     print("Verifying user : "+current_user.title())
     confirmed_users.append(current_user)
 #显示所有已验证的用户
 print("\n The confirmed users:")
 for confirmed_user in confirmed_users:
     print(confirmed_user.title())#删除包含特定值的所有列表元素
 pets=['dog','cat','rabbit','fish','cat']
 print(pets)
 while 'cat' in pets:
     pets.remove('cat')
 print(pets)#使用用户输入来填充字典
 responses={}
 polling_active=True
 while polling_active:
     #输入提示和回答
     name=input("\n 你的名字是:")
     response=input("你喜欢的颜色是什么 ")
     #将答案存储在字典中
     responses[name]=response
     #是否还有人参与调查
     repeat=input("是否继续 y/n ")
     if repeat=='n':  #注意比较字符串要加引号
         polling_active=False
 #调查结束,显示结果
 print("\n The Result")
 for name,response in responses.items(): #注意循环字典要有items()方法
     print(name+' 喜欢的颜色是 '+response)
     
 #函数
 #定义函数
 def greet_user(): #关键字def来定义函数
     '''文档字符串注释'''
     print("你好!")
 greet_user()#向函数传递信息
 def greet_user(username):
     print("你好 "+username.title())
 greet_user('join')#实参和形参
 #传递实参
 #位置实参(注意顺序)
 def descript_pet(pet_type,pet_name):
     '''显示宠物信息'''
     print("宠物类型:"+pet_type+"\n宠物名字:"+pet_name+"\n")descript_pet('猫','凯迪')
 descript_pet('狗','大黄')#关键字实参
 descript_pet(pet_type='猫',pet_name='凯迪')#默认值
 def descript_pet(pet_name,pet_type='狗'):
     '''显示宠物信息'''
     print("宠物类型:"+pet_type+"\n宠物名字:"+pet_name+"\n")descript_pet(pet_type='猫',pet_name='凯迪')
 descript_pet(pet_name='大黄')
 descript_pet('小黄')#返回值
 def get_user(fast_name,last_name):
     full_name=fast_name+" "+last_name
     return full_name.title()
     
 fullname=get_user('join','macle')
 print(fullname)#让参数变成可选的
 def get_user(fast_name,last_name,middle_name=''):
     full_name=fast_name+" "+middle_name+" "+last_name
     return full_name.title()
     
 fullname=get_user('join','sun','macle')
 print(fullname)fullname1=get_user('join','macle')
 print(fullname1)#返回字典
 def build_person(fast_name,last_name):
     person={'first':fast_name,'last':last_name}
     return person
 man=build_person('join','sun')
 print(man) #返回字典,进阶版
 def build_person(fast_name,last_name,age=''):
     person={'first':fast_name,'last':last_name}
     if age: #如果age不为空
         person['age']=age #添加字典
     return person
 man=build_person('join','sun')
 print(man)#传递列表
 def greet_user(names):
     for name in names:
         msg='helle '+name.title()
         print(msg)
 username=['join','sun','macle'] #列表
 greet_user(username)  #传入的参数为列表#在函数中修改列表
 def print_models(unprinted_designs,completed_modles):
     '''
     模拟打印每个设计,打印每个设计后,
     都将其移到列表completed_modles中
     '''
     while unprinted_designs:
         current_design=unprinted_designs.pop()
         print("当前打印的模型"+current_design)
         completed_modles.append(current_design)def show_models(completed_modles):
     for completed_modle in completed_modles:
         print("已打印模型 "+completed_modle)
         
 #赋值测试,调用函数
 unprinted_designs=['aaa','bbb','ccc']
 completed_modles=[]
 #unprinted_designs[:]为副本
 print_models(unprinted_designs[:],completed_modles)
 show_models(completed_modles)print("原件:")
 print(unprinted_designs)#传递任意数量的实参
 def make_pizza(*toppings):
     """打印顾客点的所有配料"""
     print(toppings)
 make_pizza('土豆')
 make_pizza('番茄','牛肉') #循环,对配料列表进行遍历
 def make_pizza(*toppings):
     print("\n 所点披萨的配料有:")
     for topping in toppings:
         print(topping)
 make_pizza('土豆')
 make_pizza('番茄','牛肉') #使用任意数量的关键字实参
 def build_profile(first,last,**user_info):
     """创建一个字典,有关用户的信息"""
     profile={}
     profile['first_name']=first #profile['键']=值
     profile['last_name']=last
     for key,val in user_info.items():
         profile[key]=val
     return profile
 user_profile=build_profile('zhao','xin',age='18',sex='man')
 print(user_profile)#导入整个模块
 #创建要使用的函数
 def make_pizza(size,*toppings):
     """概述要制作的披萨"""
     print("\n 制作有个"+str(size)+"寸的披萨"+"包含以下配料:")
     for topping in toppings:
         print("-"+topping)#在另一个文件中引用创建的模块
 #将函数存储在模块中
 import pizza
 pizza.make_pizza(13,'牛肉') #文件名称.函数名
 pizza.make_pizza(16,'土豆','番茄') #导入特定的函数
 from pizza import make_pizza
 make_pizza(13,'牛肉') #文件名称.函数名
 make_pizza(16,'土豆','番茄') #使用as给函数指定别名
 from pizza import make_pizza as mp
 mp(13,'牛肉') #文件名称.函数名
 mp(16,'土豆','番茄')#使用as 给模块指定别名
 import pizza  as p
 p.make_pizza(13,'牛肉') #文件名称.函数名
 p.make_pizza(16,'土豆','番茄')#创建和使用类
 #创建Dog类
 class Dog():
     
     def __init__(self,name,age):
         """初始化属性"""
         self.name=name
         self.age=age
     
     def sit(self):
         """行为:蹲下"""
         print(self.name.title()+"坐下")
     
     def roll_over(self):
         """行为:打滚"""
         print(self.name.title()+"打滚")my_dog = Dog('little', 7)
 print(my_dog.name.title()+"是我的小狗,")
 print("它"+str(my_dog.age)+"岁了") class Car():
     #属性
     def __init__(self,make,model,year):#制造商 型号 生产年份
         self.make=make
         self.model=model
         self.year=year
         self.odometer_reading=0
     #方法,打印描述信息
     def get_descripve_name(self):
         long_name="制造商 "+self.make+"\n型号 "+self.model+"\n生产年份 "+str(self.year)
         return long_name.title()
     #方法,更新行驶的里程数
     def update_odometer(self,mileage):
         self.odometer_reading=mileage
         
     #方法,递增里程数
     def increment_odometer(self,mileage):
         self.odometer_reading+=mileage
         
     #法,打印描行驶的里程数
     def read_odometer(self):
         print("行驶了"+str(self.odometer_reading)+"km")
         
 #实例化
 my_new_car=Car('join','幻影',2001) #属性赋值
 print(my_new_car.get_descripve_name()) #调用方法
 my_new_car.read_odometer()#修改属性的值
'''
 #直接修改属性的值
 #my_new_car.odometer_reading=23
 #my_new_car.read_odometer()
 '''
 '''
 #通过方法修改属性的值
 my_new_car.update_odometer(45)
 my_new_car.read_odometer()
 '''#通过方法对属性的值进行递增
 my_new_car.increment_odometer(45)
 my_new_car.read_odometer()
 my_new_car.increment_odometer(100)
 my_new_car.read_odometer()