NO.2:自学python之路,no.2python之路

By admin in Python on 2019年8月31日

NO.1:自学python之路,no.1python之路

引言

人造智能近日尤为贴近生活,在这里将记录自身自学python与tensorflow的进程。编制程序使用IDE:visual
studio 2017,python版本3.6.3,tensorflow版本1.4.0

正文

hello word实现:

python的print()函数能够向显示屏输出钦定文字,变量,数字。变量和数字能够向来出口,文字要求出席单引号恐怕双引号,例子:

print('hello word')

hello word进阶:

当须要将文字与数字或变量一起输出时,轻便的能够靠%d,%s等变成,例子:

x = 5
print('x=%d',x)

当要求一大波步向其他字符或数字时,能够使用.format完成,例子:

name = '小张'
score = 89
info = ‘{_name}在考试中得了{_score}分’.format(_name = name,_score = score)
print(info)

注释:

python中注释单行能够行使 # ,注释多行时能够使用 ”’ ,同期 ’‘’
也得以定义多行字符,例子:

#一行注释
'''这是
三行
注释'''

垄断台输入:

韦德国际手机网站,python中能够动用input()函数得到调节台输入。括号中得以用引号输出提示,例子:

x = input('输入x的值:')

判断:

python应当要静心代码的缩进。决断的口舌首要有if,elif,else。例子:

if 条件:
    情况1
elif 条件:
    情况2
else:
    情况3

循环:

python的循环函数根本有while和for。它们都得以判定else。循环中break与continue与c++中意思同样不再赘述。例子:

while 条件:
    循环体
else:
    条件不成立时执行
for i in range(范围):
    循环体
else:
    条件不成立时执行

作业

编写一个层层的学堂院系官方网站查询菜单:

程序流程图:

韦德国际手机网站 1

 

# Python 3.6
'''
author:   Kai Z
function: 华北电力大学院系查询器
version:  1.0
'''
#定义字典
dic_of_ncepu = {
    '仿真与控制实验室':{
        'http://202.206.208.58/fksys/'
        },
    '电气与电子工程学院':{
        '电力工程系':{
            'http://202.206.208.58/dianlixi/'
            },
        '电子与通信工程系':{
            'http://202.206.208.57/dianzi/pub/home.asp'
            }
        },
    '能源动力与机械工程学院':{
        '动力工程系':{
            'http://pe.ncepu.edu.cn/'
            },
        '机械工程系':{
            'http://dme.ncepu.edu.cn/jixie/'
            }
        },
    '控制与计算机工程学院':{
        '自动化系':{
            'http://202.206.208.57/automation/'
            },
        '计算机系':{
            'http://jsjx.ncepu.edu.cn/computerWeb/index.php'
            }
        },
    '经济管理系':{
        'http://202.206.208.57/dianjing/'
        },
    '数理学院':{
        '数理学院(北京)':{
            'http://slx.ncepu.edu.cn/'
            },
        '数理学院(保定)':{
            'http://202.206.208.58/math/'
            }
        },
    '数理学院':{
        '数理学院(北京)':{
            'http://slx.ncepu.edu.cn/'
            },
        '数理学院(保定)':{
            'http://202.206.208.58/math/'
            }
        },
    '人文与社会科学学院':{
        'http://dlp.ncepu.edu.cn/'
        },
    '外国语学院':{
        'http://202.206.208.58/yyx/'
        },
    '环境科学与工程学院':{
        'http://202.206.208.58/huangongxi/yemian/shouye/index.php'
        },
    '国际教育学院':{
        'http://iei.ncepu.edu.cn/'
        },
    '马克思主义学院':{
        'http://smarx.ncepu.edu.cn/'
        },
    '科技学院':{
        'http://www.hdky.edu.cn/'
        },
    '体育教学部':{
        'http://202.206.208.57/txb/'
        },
    '继续教育学院':{
        'http://www.hdcj.com/'
        },
    '艺术教育中心':{
        'http://202.206.208.57/YiJiaoZhongXin/portal.php'
        },
    '工程训练中心':{
        'http://cet.ncepu.edu.cn/'
        },
    }
print('''
---------------华北电力大学院系网址查询---------------
请输入要查询的院系(输入q退出):
    ''')
company = ''#预定义单位
while company != 'q':
    department = input()
    if department == 'q':
        break
    elif not department in dic_of_ncepu:
        print('未查询到该系,请重新输入')
        continue
    else:
        if len(dic_of_ncepu[department]) == 1:
            print(dic_of_ncepu[department])
        else:
            print('请输入所查询院系的下属单位:(按b返回,按q退出)')
            while True:
                company = input()
                if company == 'b':
                    print('返回上一级')
                    break
                elif company == 'q':
                    break
                elif not company in dic_of_ncepu[department]:
                    print('未查询到该单位,请重新输入')
                    continue
                else:
                    print(dic_of_ncepu[department][company])

 

http://www.bkjia.com/Pythonjc/1303313.htmlwww.bkjia.comtruehttp://www.bkjia.com/Pythonjc/1303313.htmlTechArticleNO.1:自学python之路,no.1python之路 引言
人工智能方今愈加贴近生活,在此间将记录本人自学python与tensorflow的长河。编制程序使用IDE:visual
stu…

NO.2:自学python之路,no.2python之路

引言

本周开班认识了库,并学习了Python中各体系型的变量和常用操作。并做到了较为周到的客商与公司购物分界面设计。

正文

模块:

Python有规范库和第三方库。第三方库供给安装技艺动用。一大波的库能够协助大家更便于的产生复杂的操作。一般景况下,标准库被封存在了‘lib/’目录下,第三方库被保留在了‘lib/site-packages’目录下。导入八个库特别简单,例子:

import os

每个模块皆有无数操作,一般景色是用模块名.操作名完毕某个操作,例子:

os.system('dir')#读取目录下的文件列表,但不保存

变量类型:

整型(int),Python 3.X中整型独有int型,而在Python
2.X中整型分为int,和long,变量的门类不需定义,与Matlab中类似,但项目不可轻松更动。查看变量类型,例子:

x = 3
type(x)

其他品种与C++中类似,所以不再赘言。

虚数型,在Python中j表示虚数。

比特型(bytes),Python 2.X中比特型与字符型未有分裂,而在Python
3.X中留存不相同,它们能够互相转变,例子:

x = '我爱中国'
y = x.encode()#转换为比特型
print(y)
z = y.decode())#转换为字符型
print(z)

在平凡行使Python中,字典与列表是最常使用的变量。上面将详细介绍字典与列表的应用办法。

列表:

列表的定义,例子:

province = ['Beijin','Hebei','Shanghai','Henan']

列表的切成丝与Matlab有相似之处,但持有光辉差异,Python的:后的数字是切成块地方的后一位。所以,在Python中[1:2]=[1],例子:

province = ['Beijin','Hebei','Shanghai','Henan']
print(province[0:2])#切片(顾头不顾尾)

Python还是能够从右数来完结切成丝,例子:

province = ['Beijin','Hebei','Shanghai','Henan']
print(province[-1])#从右数
print(province[-2:])#最后的值省略

 列表的充实有二种格局,一种是最后追加,还会有一种是某处插入。例子:

province = ['Beijin','Hebei','Shanghai','Henan']
province.append('Shannxi')#最后追加
province.insert(1,'Xinjiang')#某处插入

列表的更改十三分简单易行,例子:

province = ['Beijin','Hebei','Shanghai','Henan']
province[1] = 'Beijing'#改变某处

列表的去除有相当多情势,del是Python中通用的删减方法,其余还有删除有个别与删除某处参数的不二诀窍,例子:

province = ['Beijin','Hebei','Shanghai','Henan']
del province[2]#删除某处
province.remove('Beijing')#删除某个
province.pop()#删除最后一个(默认),或括号中的位置

别的,Python还为列表提供了累累功效。Python中得以轻便查询有个别参数的岗位和个数,例子:

province = ['Beijin','Hebei','Shanghai','Henan']
province.index('Shanghai')#寻找位置
province.count('Shanghai')#寻找个数

变动列表的依次也相当简易,例子:

province = ['Beijin','Hebei','Shanghai','Henan']
province.reverse()#反转序列
province.sort()#排序序列(符号,数字,大写,小写(ASCII))

Python中列表的复制与Matlab差异,设计相对合理一些,不过有有个别不便知晓,学过C++中指针的能够相对轻易驾驭一些。普通的赋值操作,只是将列表的地方复制,一旦中间列表中的值产生变动,两个中的值都会更改,例子:

province = ['Beijin','Hebei','Shanghai','Henan']
province_copy = province#复制地址,改变后一起变化
province.append('Xinjiang')
print(province)
print(province_copy)

要想复制一个列表,有浅copy和深copy二种方法。浅copy只复制列表的率先层,第二层将只复制地址。深copy则是完全在内部存款和储蓄器中树立一个同样的区域。例子:

province = ['Beijin',['Hebei','Shijiazhuang'],'Shanghai','Henan']
province_copy = province.copy()#浅copy
import copy
province_copy = copy.copy(province)#浅copy
province_copy = list(province)#浅copy
province_copy = copy.deepcopy(province)#深copy

Python中也提供了列表的合併方法,例子:

province = ['Beijin','Hebei','Shanghai','Henan']
province_new = ['Xinjiang','Dongbei']
province.extend(province_new)#并入后面

列表的连忙循环方法是用于下格式,[::x]切开中x为步距,例子如下:

province = ['Beijin','Hebei','Shanghai','Henan']
for i in province[::2]:#切片
    循环体

当列表中存款和储蓄的新闻不想被改成时,就足以用元组,元组的定义与列表差不离一致,只是用‘()’取代了[]。元组不可能修改,只可以切成片。例子:

province = ('Beijin','Hebei','Shanghai','Henan')

字符:

字符中对字母大小写变化的操作比较多,能够有以下三种方法,例子:

x = 'l love china'
x.capitalize()#首字母大写
x.upper()#全变大写
x.lower()#全变小写
x.title()#变为标题形式
x.swapcase()#大小写互换

在Python中还足以轻易的对字符举办修改,例子:

names = 'Xiaohong Xiaohuang'
names.replace('o','O',1)#旧字符,新字符,替换个数
tran = str.maketrans('aox','123')#设置替换密文
names.translate(tran)#替换加密
names.center(50,'-')#50个字符,将name居中,不的够用-填充
names.ljust(50,'*')#50个字符,将name居左,不的够用*填充
names.rjust(50,'*')#50个字符,将name居右,不的够用*填充
names.zfill(50)#50个字符,将name居右,不的够用0填充
names = '  Xiaohong'
names.lstrip()#去掉左边空格,然后回车
names = '  Xiaohong   '
names.strip()#去掉左右空格,然后回车
names = 'Xiaohong\tXiaohuang'#\t与下面结合,控制空格的数量
names.expandtabs(tabsize=30)#空格数

而外,还提供了查询功用,例子:

names = 'xiaohei'
names.find('i')#从左找某个字符第一次出现的位置
names.rfind('i')#从右找某个字符第一次出现的位置

字符和列表之间还足以相互转变,例子:

names = 'Xiaohong Xiaohuang Xiaozhang Xiaoli'
names.split()#按空格分成列表
names = 'Xiaohong
Xiaohuang
Xiaozhang
Xiaoli'
names.splitlines()#按回车分成列表
names = ['Xiaohong','Xiaohuang','Xiaozhang','Xiaoli']
'+'.join(names)#用+连接列表成字符

Python还为字符提供了好些个判定,这几个功效许多以is开端,例子:

names = ('xiaohong hei')
names.endswith('hei')#判断以什么结尾
names.isalnum()#判断为阿拉伯数字
names.isalpha()#判断为纯英文
names.isdigit()#判断为整数
names.isidentifier()#判断为合法标识符(变量名)
names.islower()#判断为小写
names.istitle()#判断为标题形式

字典

字典也是常用的一种工具,字典是利用‘{}’定义的,字典中的数据是冬日的,字典能够与体系与字典嵌套。

索引字典时行使KEY,例子:

info = {
    '2012020201':'随便',
    '2012020202':'呵呵',
    '2012020203':'不知'
    }
print(info['2012020202'])

字典的扩张和退换都以经过复制操作,程序会首先查询字典中是还是不是有该KEY值,未有,则新建一条。有,则修改该条的值。例子:

info = {
    '2012020201':'随便',
    '2012020202':'呵呵',
    '2012020203':'不知'
    }
info['2012020201'] = '蛤蛤'#修改
info['2012020204'] = '拉拉'#增加

字典的去除能够采用Python中通用的删减方法,恐怕字典中提供的方法,例子:

info = {
    '2012020201':'随便',
    '2012020202':'呵呵',
    '2012020203':'不知'
    }
del info['2012020203']#删除
info.pop('2012020203')#删除
info.popitem()#随便删除一个,不常用

招来是,能够用事先的主意来查找,可是还会有一种安全的追寻方法,例子:

info = {
    '2012020201':'随便',
    '2012020202':'呵呵',
    '2012020203':'不知'
    }
info.get('2012020202')

看清有些KEY是还是不是在字典中,例子:

info = {
    '2012020201':'随便',
    '2012020202':'呵呵',
    '2012020203':'不知'
    }
'2012020202' in info

字典也得以统一,合併时,将会用新的字典中覆盖旧的字典,例子:

info = {
    '2012020201':'随便',
    '2012020202':'呵呵',
    '2012020203':'不知'
    }
info_new = {
    '2012020202':'王凯',
    '2012020206':'彭浩',
    }
info.update(info_new)#合并更新

Python也提供了新建叁个字典的主意,不过存在十分大的主题材料,所以一般不会利用,例子:

info_new = dict.fromkeys([1,2,3],[1,{'name':'X',2}])#初始化字典
info_new[3][1][‘name’] = Y

当修改Python新建的字典时,例子中只改了[3][1]中的‘name’为‘Y’但是可以发掘字典中的全数‘name’都成为了‘Y’。所以,不荒谬情状下很难使用。

字典能够转为列表,例子:

info = {
    '2012020201':'随便',
    '2012020202':'呵呵',
    '2012020203':'不知'
    }
info.items()

种种字典的操作与单级字典差异十分小,修改略有分歧。例子:

province = {
    '华北':{
        '北京':['直辖市','很大'],
        '河北':['石家庄','漂亮'],
        },
    '东北':{
        '黑龙江':['哈尔滨','很棒'],
        '辽宁':['沈阳','厉害'],
        },
    }
province['华北']['北京'][1] = '首都'#修改
province.setdefault('西北',{'陕西':['西安','省会']})#取西北如果有,返回,没有新建

字典的循环格式与列表类似,格式如下,例子:

info = {
    '2012020201':'随便',
    '2012020202':'呵呵',
    '2012020203':'不知'
    }
for i in info:#高效循环
    print(i,info[i])
    循环体

作业

编排一个购物车程序,供给将商品音讯存在文件里。展开程序后须求顾客登录,顾客输入要求完结,已购商品,余额记录,运行程序,输入薪水,依照编号,购买商品,检测余额,够用扣款,相当不足提醒,随时退出,打字与印刷已经买卖的商品和余额。商家入口须求完成,加多商品,修改价格。

流程图:

韦德国际手机网站 2

主程序:

#购物车程序
'''
商品信息存在文件里
1.打印商品列表
用户入口
已购商品,余额记录
启动程序,输入工资
根据编号,购买商品
检测余额,够用扣款,不够提醒
随时退出,打印已经购买的商品和余额
商家入口
添加商品,修改价格
'''
import getpass

title = '''
---------------------------
-     欢迎光临本超市      -
---------------------------
'''
print(title)

#读取商品数据
goods = open('商品.txt')
read_flag = True
goods_list = []
while read_flag:#按行处理
    goods_line = goods.readline()
    if goods_line == '':
        read_flag = False
    else:
        goods_list.append(goods_line.split())
goods.close()

#读取用户信息
info = open('用户信息.txt')
read_flag = True
info_user = []
while read_flag:
    info_line = info.readline()
    if info_line == '':
        read_flag = False
    else:
        info_user.append(info_line.split())
info.close()

#用户登陆
success_flag = False
for count in range(0,6):
    account = input('请输入用户名:')
    password = getpass.getpass('请输入密码:')
    for i in range(0,len(info_user)):
        if account == info_user[i][0] and password == info_user[i][1]:
            success_flag = True
            user_number = i
            break
    if success_flag:
        print('尊敬的%s登陆成功!'%info_user[user_number][2])
        break
    else:
        print('用户名或密码错误!')
else:
    print('输入密码次数超过6次,请重新开启软件尝试!')
    exit()

#进入入口
info_write = []
if info_user[user_number][3] == '0':
    #普通用户
    if info_user[user_number][4] == '0':
        #初次登陆
        balance = input('您是第一次登陆,请输入充值金额:')
        if balance.isdigit():
            balance = int(balance)
            info_user[user_number][4] = '1'
            info_user[user_number][5] = str(balance)
        else:
            print('充值错误,退出系统!')
            exit()
    #非初次登陆
    for i in range(0,len(goods_list)):
        goods = '{number}.物品名:{name} 价格:{price}'.format(number = i + 1,
                                                               name = goods_list[i][0],
                                                               price = goods_list[i][1])
        print(goods)
    print('%s.充值'%(len(goods_list)+1))
    buy_list = []
    balance = int(info_user[user_number][5])
    while True:
        buy_number = input('请输入你所需要的商品序号[按q退出购买]:')
        if buy_number == 'q':
            buy_list = ' '.join(buy_list)
            print('本次购物购买了:{list}'.format(list = buy_list))
            #更新信息
            info_user[user_number][5] = str(balance)
            info = open('用户信息.txt','w')
            for i in range(0,len(info_user)):
                info.write(' '.join(info_user[i])+'\n')
            info.close()
            exit()
        elif buy_number.isdigit():
            buy_number = int(buy_number)-1
            if buy_number > len(goods_list) or buy_number < 0:
                print('请输入正确的商品码!')
            elif buy_number == len(goods_list):
                money = input('请输入充值金额:')
                if money.isdigit():
                    balance += int(money)
                    info_user[user_number][5] = str(balance)
                else:
                    print('充值金额错误')
            else:
                if balance < int(goods_list[buy_number][1]):
                    print('你的余额不够购买这件商品!')
                else:
                    balance = balance - int(goods_list[buy_number][1])
                    buy_list.append(goods_list[buy_number][0])
                    print('购买成功!还剩%s圆'%balance)#
        else:
            print('输入错误')
elif info_user[user_number][3] == '1':
    #商家用户
    for i in range(0,len(goods_list)):
        goods = '{number}.物品名:{name} 价格:{price}'.format(number = i + 1,
                                                               name = goods_list[i][0],
                                                               price = goods_list[i][1])
        print(goods)
    print('%s.添加物品'%(len(goods_list)+1))
    add_list = []
    while True:
        buy_number = input('请输入你需要修改商品价格的序号[按q退出购买]:')
        if buy_number == 'q':
            add_list = ' '.join(add_list)
            print('本次共添加了:{list}'.format(list = add_list))
            #更新信息
            info = open('商品.txt','w')
            for i in range(0,len(goods_list)):
                info.write(' '.join(goods_list[i])+'\n')
            info.close()
            exit()
        elif buy_number.isdigit():
            buy_number = int(buy_number)-1
            if buy_number > len(goods_list) or buy_number < 0:
                print('请输入正确的商品码!')
            elif buy_number == len(goods_list):
                goods_name = input('请输入商品名称:')
                goods_price = input('请输入商品价格:')
                if goods_price.isdigit():
                    add_list.append(goods_name)
                    goods_list.append([goods_name,goods_price])
                else:
                    print('商品价格信息错误!')
            else:
                goods_price = input('请输入商品价格:')
                if goods_price.isdigit():
                    goods_list[buy_number][1] = goods_price
                else:
                    print('商品价格信息错误!')
        else:
            print('输入错误')
else:
    print('用户数据错误!请管理员维护!!')

音信记录文件:

商品.txt

手机 1000
电脑 8000
耳机 500
泡面 3
娃娃 10000

客户音讯.txt

customer 123456 凯凯王 0 0 0
business 123456 卖力头 1 0 0

 

http://www.bkjia.com/Pythonjc/1305219.htmlwww.bkjia.comtruehttp://www.bkjia.com/Pythonjc/1305219.htmlTechArticleNO.2:自学python之路,no.2python之路 引言
本周始发认识了库,并学习了Python中各体系型的变量和常用操作。并成功了较为完善的客户与协作社购…

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 韦德国际手机网站 版权所有