Python 第一节 --持续更新

@Jack_Bin

Python 第一节 --持续更新

谨以此博客记录本人Jack_Bin的Python学习经历,从小白一步步的成长经历,青春——总该做点什么,加油!!!

一、入门

编辑器推荐使用 Pycharm ,环境为win10 , Python 3.7.4.

  1. 变量: 变量名应既简短又具有描述性。
    在这里插入图片描述

  2. 使用制表符或换行符来添加空白: \n 和 \t 用法:
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

  3. 删除空白、要确保字符串末尾没有空白,可使用方法rstrip():
    . 在这里插入图片描述
    要永久删除这个字符串中的空白,必须将删除操作的结果存回到变量中:在这里插入图片描述
    你还可以剔除字符串开头的空白,或同时剔除字符串两端的空白。为此,可分别使用方法lstrip()和strip():在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

二、列表

1、对列表的元素进行修改、添加、删除、和弹出储存:在这里插入图片描述
.append()方法只能在列表结尾加元素,若要实现在列表任意位置加入元素只能使用.insrt(位置,“元素”)方法:
在这里插入图片描述
2、.remove()、.sort()、sorted、.revers() 和 len() 的用法:在这里插入图片描述
浅复制列表的3种方法:
在这里插入图片描述
深复制列表的方法:
在这里插入图片描述
3、For 循环:在这里插入图片描述
在这里插入图片描述
4、使用函数 range()、list()、输出列表最大值最小值和求和:在这里插入图片描述
5、切片和元组:
在这里插入图片描述
6、if 循环的基本用法:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
7、判断列表是不是空的:在这里插入图片描述
8、使用多个列表:在这里插入图片描述
9、while 循环:
来看这个栗子:

responses = {}
# 设置一个标志,指出调查是否继续
polling_active = True
while polling_active:
 # 提示输入被调查者的名字和回答
    name = input("\nWhat is your name? ")
    response = input("Which mountain would you like to climb someday? ")
 # 将答卷存储在字典中
    responses[name] = response
 # 看看是否还有人要参与调查
    repeat = input("Would you like to let another person respond? (yes/ no) ")
    if repeat == 'no':
        polling_active = False

调查结束,显示结果

print("\n— Poll Results —")
for name, response in responses.items():
print(name + " would like to climb " + response + “.”)
在这里插入图片描述
在这里插入图片描述

猜年龄小游戏

import random

times=0
duck=random.randint(10,25)
print ('=================LOVE===============')
pig=2
print('猜一下珊珊的年龄吧:')
while (pig!=duck)and(times<6):
pig=int(input())
    if isinstance(pig,int):
        times = times+1
        if pig==duck:
            print("真聪明,猜对了")
            print('奖励你一个小媳妇好了 =0=')
        else:
            if pig>duck:
                print('有点大了呢 ,再小一点哦')
            else:
                print('有点小了呢 ,再大一点哦')

            if times<6:
                print('再试一次吧:')
            else:
                print('机会用光了,下次再来试试吧')
    else:
        print('您输入的格式不正确,请输入规范的数字')
print('游戏结束,不玩啦')

数据运算

算数运算:
在这里插入图片描述
比较运算:
在这里插入图片描述
赋值运算:
在这里插入图片描述
逻辑运算:
在这里插入图片描述
成员运算:
在这里插入图片描述
身份运算:
在这里插入图片描述
位运算:
在这里插入图片描述
运算符优先级:
在这里插入图片描述
更多内容:请点击这里.

三元运算:

在这里插入图片描述

如果条件为真:result = 值1
如果条件为假:result = 值2
在这里插入图片描述
在这里插入图片描述
encode和utf-8的转换:
在这里插入图片描述
在这里插入图片描述

Python isdigit()方法

Python isdigit() 方法检测字符串是否只由数字组成。
在这里插入图片描述

Python index()方法

Python index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常。
在这里插入图片描述

Python enumerate() 函数

该函数在字面上是枚举、列举的意思,用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中,可同时得到数据对象的值及对应的索引值

在这里插入图片描述
在这里插入图片描述

Python:print显示颜色

显示颜色格式:\033[显示方式;字体色;背景色m … \033[0m
在这里插入图片描述
实例:
在这里插入图片描述在这里插入图片描述

Python中的异常处理和try,except的用法

处理ZeroDivisionError异常的try-except代码块类似于下面这样:

try: 
 print(5/0) 
except ZeroDivisionError: 
 print("You can't divide by zero!")

python中exit()的用法
最近在学习的时候用到exit(),发现对它的用法还不熟悉,通过查阅网上的资料,对exit()的用法做一个简单的整理。

1、sys.exit(n) 退出程序引发SystemExit异常,可以捕获异常执行些清理工作。n默认值 为0,表示正常退出,其他都是非正常退出。还可以sys.exit(“sorry, goodbye!”); 一般主 程序中使用此退出。

2、os._exit(n), 直接退出, 不抛异常, 不执行相关清理工作。常用在子进程的退出。

3、exit()/quit(),跑出SystemExit异常。一般在交互式shell中退出时使用。

4、exit(0) 有什么功能?
在很多类型的操作系统里,exit(0) 可以中断某个程序,而其中的数字参数则用来表示程序是否是碰到错误而中断。exit(1) 表示发生了错误,而 exit(0) 则表示程序是正常退出的。这和我们学的布尔逻辑 0==False 正好相反,不过你可以用不一样的数字表示不同的错误结果。比如你可以用exit(100) 来表示另一种和 exit(2)或 exit(1) 不同的错误。

  • 程序练习:
    要求:
    1、启动程序后,让用户输入工资,然后打印商品列表
    2、允许用户根据商品编号购买商品
    3、用户选择商品后、检测余额是否足够、足够就直接扣款、不够就提醒
    4、可随时退出,退出时,打印已购买的商品和余额

  • 完成任务

参考代码

# Author: Jack_Bin
shop1 = []     #预创建一个空列表,用于储存用户购买的商品(购物车)
shop = [
    ['iphone', 1000],
    ['xiaomi', 500],
    ['huawei', 800],
]                  #商品列表
temp = input('输入你的工资:')
if temp.isdigit():     #判断用户输入的字符串是否只由数字组成
    temp = int(temp)  #把输入的数字转换成整数
    while True:
        for index, item in enumerate(shop):  #遍历列表shop中的元素,并为它们指定一个索引序列,同时列出数据和数据下标
            print(index, item)
        temp1 = input('请输入你要买的商品序号 》》:')
        if temp1.isdigit():
            temp1 = int(temp1)
            if temp1 < len(shop) and temp1 >= 0:  #判断用户输入的商品序号是否在商品列表中
                p_itm = shop[temp1]
                if p_itm[1] <= temp:  # 判断用户的余额是否足够支付商品费用
                    shop1.append(p_itm)  #将商品加入到‘ 购物车’
                    temp = temp - p_itm[1]    #工资减去花费
                    print("你购买的商品已经成功加入到购物车了,你可以继续购买")
                else:
                    print('\033[0;41;1m你的余额只剩\033[0m'+str(temp)+',输入q退出程序')  #若余额不足,输出余额,并变色
            else:
                print('product code [%s] is not exist!' % temp)
        elif temp1 == 'q':      #判断用户是否输入了q
            print('========shopping list==========')
            for q in shop1:
                print(q)
            print('你的余额为', temp)    #打印购物列表 并显示余额
            exit()       #退出程序
        else:
            print("对不起,你输入的序号无效")   

字典:

temp =  {“键”: "值",“键” :"值"}

temp =  {“键”: "值",“键” : ["a","b","c","d",]}   #字典嵌套列表

temp =  {
          ‘temp1’': {“键” : "值",“键” : "值"},
  		  'temp2':  {“键” : "值",“键” : "值"},
          'temp3':  {“键” : "值",“键” : "值"}
}    
  				   *#字典嵌套字典*

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Python strip()方法

Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。

注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。

语法
strip()方法语法:

str.strip([chars]);

参数

  • chars – 移除字符串头尾指定的字符。

返回值

  • 返回移除字符串头尾指定的字符生成的新字符串。

以下实例展示了strip()函数的使用方法:

str = "00000003210Runoob01230000000"; 
print (str.strip( '0' ));  # 去除首尾字符 0
 
 
str2 = "   Runoob      ";   # 去除首尾空格
print (str2.strip());

以上实例输出结果如下:

3210Runoob0123
Runoob

- 文件的读与写:

f = open(“文件名”,“文件打开模式”,encoding = “字符编码类型”)
temp = f . 文件操作方法
print(temp)
f . close() 

1、文件打开模式:
在这里插入图片描述
2、文件操作方法:
在这里插入图片描述

  • 基本实现

    f = open(‘text.txt’, ‘r’, encoding=‘utf-8’)
    print(f.read())
    f.close()

  • 中级实现

在基本实现的的基础上,可能要考虑到一些可能出现的意外因素。因为文件读写时都有可能产生IO错误(IOError),一旦出错,后面包括 f.close() 在内的所有代码都不会执行了,因此我们要保证文件无论如何都应该关闭。

f = ''  # 全局要申明下 f 变量,不然 f.close() 会报黄
try:
    f = open('text.txt', 'r', encoding='utf-8')
    print(f.read())
finally:
    if f:
        f.close()

在上面的代码中,就是 try 中的代码出现了报错,依然会执行 finally 中的代码,即文件关闭操作被执行。

3、文件读写与字符编码:
为了避免忘记或者为了避免每次都要手动关闭文件,且过多的代码量,我们可以使用 with 语句,with 语句会在其代码块执行完毕之后自动关闭文件。

在这里插入图片描述
实例代码如下:

# Author:Jack Bin

f = open('boss','w',encoding='utf-8')
  # ’w‘ 创建一个文件在当前目录   (若已有同名文件则会覆盖,慎用!!!)
f.write('我爱珊珊呀')
date = f
print (date)


f = open('boss','a',encoding='utf-8')
  # ’a‘ 在打开的文件最后追加内容
f.write('\n\t我会喜欢你多久呢?我也不知道啊。
\n未来的事谁也说不准吧,也许会一直喜欢下去,
\n也许在某一天,一年后、五年后、十年后、想通了,放弃了,也说不定。
\n不过既然是不能预知的事,那就以后再说。现在我还喜欢你,这样挺好')
date = f
print (date)

f.close()      #关闭文件

f = open('boss','r',encoding='utf-8')
  # ’r‘ 读取该文件在当前目录
date = f.read()       #读取整个文件
print (date)

f.close()   #关闭文件


 f= open('boss','r',encoding='utf-8')
  # ’r‘ 读取该文件在当前目录
for i in range(4):        #使用 for 循环打印前 4 行代码
    date=f.readline()
    print (date)

f.close()   #关闭文件

最后的结果,如下图:
在这里插入图片描述
在这里插入图片描述

求模运算符

处理数值信息时,求模运算符(%)是一个很有用的工具,它将两个数相除并返回余数

如下,这是一个简单的判断一个数是奇数还是偶数的小程序:

number = input("Enter a number, and I'll tell you if it's even or odd: ")
number = int(number)
if number % 2 == 0:
    print("\nThe number " + str(number) + " is even.")
else:
    print("\nThe number " + str(number) + " is odd.")

定义函数 def 的用法

def greet_user(username):
   #显示简单的问候语
    print("Hello, " + username.title() + "!")
greet_user('jesse')

在这里插入图片描述

  • 实参和形参:
    前面定义函数greet_user()时,要求给变量username指定一个值。调用这个函数并提供这种
    信息(人名)时,它将打印相应的问候语。
    在函数greet_user()的定义中,变量username是一个形参——函数完成其工作所需的一项信
    息。在代码greet_user(‘jesse’)中,值’jesse’是一个实参。实参是调用函数时传递给函数的信
    息。我们调用函数时,将要让函数使用的信息放在括号内。在greet_user(‘jesse’)中,将实参
    'jesse’传递给了函数greet_user(),这个值被存储在形参username中。

传递实参

  • 位置实参:
    你调用函数时,Python必须将函数调用中的每个实参都关联到函数定义中的一个形参。为此,最简单的关联方式是基于实参的顺序。这种关联方式被称为位置实参。
    为明白其中的工作原理,来看一个显示宠物信息的函数。这个函数指出一个宠物属于哪种动物以及它叫什么名字,如下所示:
def describe_pet(animal_type, pet_name):
 """显示宠物的信息"""
 print("\nI have a " + animal_type + ".")
 print("My " + animal_type + "'s name is " + pet_name.title() + ".")
describe_pet('hamster', 'harry')

1、调用函数多次

def describe_pet(animal_type, pet_name): 
 """显示宠物的信息""" 
 print("\nI have a " + animal_type + ".") 
 print("My " + animal_type + "'s name is " + pet_name.title() + ".") 
describe_pet('hamster', 'harry') 
describe_pet('dog', 'willie')    #在调用一次整个函数

-输出如下
在这里插入图片描述

  • 关键字实参
    关键字实参是传递给函数的 名称—值 对。你直接在实参中将名称和值关联起来了,因此向函数传递实参时不会混淆(不会得到名为Hamster的harry这样的结果)。关键字实参让你无需考虑函数调用中的实参顺序,还清楚地指出了函数调用中各个值的用途。

举个栗子:

 def describe_pet(animal_type, pet_name):
     """显示宠物的信息"""
     print("\nI have a " + animal_type + ".")
     print("My " + animal_type + "'s name is " + pet_name.title() + ".")
     describe_pet('hamster', 'harry')
     describe_pet('dog', 'willie')
     describe_pet('cat', '珊宝')
     describe_pet(animal_type='hamster', pet_name='harry')   #指定实参 
  describe_pet()
  • 让实参变成可选的

并非所有的人都有中间名,但如果你调用这个函数时只提供了名和姓,它将不能正确
地运行。为让中间名变成可选的,可给实参middle_name指定一个默认值——空字符串,并在用
户没有提供中间名时不使用这个实参。为让get_formatted_name()在没有提供中间名时依然可行,
可给实参middle_name指定一个默认值——空字符串,并将其移到形参列表的末尾:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 使用任意数量的位置实参

在形参的前面加 * 即可,如下例:

def make_pizza(*toppings): 
 """打印顾客点的所有配料""" 
 print(toppings) 
make_pizza('pepperoni') 
make_pizza('mushrooms', 'green peppers', 'extra cheese')
  • 使用任意数量的关键字实参
def build_profile(first, last, **user_info):
     #创建一个字典,其中包含我们知道的有关用户的一切"""
        profile = {}
        profile['first_name'] = first
        profile['last_name'] = last
        for key, value in user_info.items():
            print(key,'\n'+value)
            profile[key] = value
        return profile
    user_profile = build_profile('albert', 'einstein',
                                  location='princeton',
                                  field='physics')
    print(user_profile)

接下一篇博文 ====>

©️2020 CSDN 皮肤主题: 技术工厂 设计师:CSDN官方博客 返回首页