从零开始学python项目_基础语言入门:从零开始学python

洋洋洒洒,就这样,我正式进入了学习python的坑,没想到学过c,C++,java之后,即将入新坑。自从不写程序,好像每次都很难静下来,迷茫了许久,这一次学习python 好像又重新找回了那种能够沉浸下来学习的感觉,就像以前一样。

继上次的变量及数值类型、序列及通用操作,接下来主要是字典映射、条件判断及循环语句、函数、模块与包以及数据的读写五部分。

af0e982f8d26

字典映射

条件判断及循环语句:条件判断及循环语句

af0e982f8d26

条件判断及循环语句

函数:函数

af0e982f8d26

函数

模块与包:模块与包

af0e982f8d26

模块与包

数据的读与写:数据的读与写

af0e982f8d26

数据读写

小项目整理:【项目01】 商铺数据加载及存储

作业要求:

1、成功读取“商铺数据.csv”文件

2、解析数据,存成列表字典格式:[{'var1':value1,'var2':value2,'var3':values,...},...,{}]

3、数据清洗:

① comment,price两个字段清洗成数字

② 清除字段缺失的数据

③ commentlist拆分成三个字段,并且清洗成数字

4、结果存为.pkl文件#读取数据

f = open(r'E:\自我管理\数据分析\数据分析python\课件\CLASSDATA_ch02基础语言入门:从零开始学习Python\商铺数据.csv',

'r',encoding = 'utf8')

for i in f.readlines()[:5]:

print(i.split(','))

f.seek(0)

f.close()

print("读取完成")#comment字段清洗为数字

def fcm(s):

if '条' in s:

return int(s.split(' ')[0])

else:

return '缺失数据'#price清洗为数字

def fpr(s):

if '¥' in s:

return float(s.split('¥')[-1])

else:

return  '缺失数据'#commentlist拆分为三个字段并清洗为数字

def fcl(s):

if ' ' in s:

quality = float(s.split()[0][2:])

environment = float(s.split()[1][2:])

service = float(s.split()[2][2:-1])

return [quality,environment,service]

else:

return  '缺失数据'#解析数据

f = open('E:\\自我管理\\数据分析\\数据分析python\\课件\\CLASSDATA_ch02基础语言入门:从零开始学习Python\\商铺数据.csv',

'r',encoding = 'utf8')

datalst = []  # 创建空列表,用于存储字典格式的数据

n = 0  # 创建计数变量

for i in f.readlines():

data = i.split(',')  #将该行数据按','分离开

classify = data[0]            # 提取分类

name = data[1]                # 提取店铺名称

comment_count = fcm(data[2])  # 提取评论数量

star = data[3]                # 提取星级

price = fpr(data[4])          # 提取人均

add = data[5]                  # 提取地址

qua = fcl(data[6])[0]          # 提取质量评分

env = fcl(data[6])[1]          # 提取环境评分

ser = fcl(data[6])[2]          # 提取服务评分

if  '缺失数据' not in [comment_count, price, qua]:  # 用于判断是否有数据缺失

n += 1

data_re = [['classify',classify],

['name',name],

['comment_count',comment_count],

['star',star],

['price',price],

['address',add],

['quality',qua],

['environment',env],

['service',ser]]

datalst.append(dict(data_re))  # 生成字典,并存入列表datalst

print('成功加载%i条数据' %n)

else:

continue

print(datalst)

print('总共加载%i条数据' %n)#数据存储.pkl数据

import pickle

pic = open('E:\\自我管理\\数据分析\\数据分析python\\课件\\CLASSDATA_ch02基础语言入门:从零开始学习Python\\data.pkl','wb')

pickle.dump(datalst,pic)

pic.close()

print('finished!')#读取pickle

pic = open( 'E:\\自我管理\\数据分析\\数据分析python\\课件\\CLASSDATA_ch02基础语言入门:从零开始学习Python\\data.pkl', 'rb')

st = pickle.load(pic)

print(st)

pic.close()

项目02# 题目1:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的两位数?都是多少?

# 该题目不用创建函数

lst = [1,2,3,4]

m = []

n = 0

for i in range(len(lst)):

for j in range(len(lst)):

if j != i:  #无重复数字

n += 1

m.append(str(lst[i])+str(lst[j]))

else:

continue

print('能组成%i个互不相同且无重复数字的两位数,\n分别是:'%n)

for i in range(len(m)):

print(m[i])# 题目2:输入三个整数x,y,z,请把这三个数由小到大输出,可调用input()。(需要加判断:判断输入数据是否为数字)

# 提示:判断是否为数字:.isdigit()

# 该题目需要创建函数

def f():

lst = []

for i in range(1,4):

m = input('请输入第%i个数字:'%i)

while m.isdigit() == False:

m = input('输入为非数字字符,请重新输入第%i个数字:'%i)

else:

lst.append(int(m))

lst.sort()

print('输入的三个数字由小到大排列是:',lst)

f()# 题目3:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

# 提示:利用while语句,条件为输入的字符不为'\n'.

# 该题目不需要创建函数

strs= list(input('请输入任意字符:'))    #输入字符串

count = len(strs)

int_count = 0    #数字字符个数

str_count = 0    #英文字母个数

space_count = 0  #空格个数

other_count = 0    #其他字符个数

for i in range(count):

count = len(strs)

while strs[i] == '\\':

if strs[i+1] == 'n':

strs = list(input('输入字符有"\\n",不能继续进行,请重新输入!!'))

break

else:

other_count +=1

break

break

else:

if strs[i].isalpha():

str_count += 1

elif strs[i].isspace():

space_count += 1

elif strs[i].isdigit():

int_count += 1

else:

other_count +=1

print('输入的字符串为:%s, '%strs,'字符总数为:%d'%count)

print ('该字符串中的字符有:%d '%str_count)

print ('该字符串中的数字有:%d' %int_count)

print ('该字符串中的空格有:%d '%space_count)

print ('该字符串中的特殊字符有:%d' %other_count)# 题目4:猴子吃桃问题

# 猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,

# 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。

# 以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少?

# 提示:采取逆向思维的方法,从后往前推断。

# 该题目不需要创建函数

#思路为:第10天还没吃之前的桃子数量初始化 p = 1,之后从9至1循环9次,

#根据上述公式反推为 p = (p+1) * 2 可得第1天还没吃之前的桃子数量。

p = 1

print('第10天吃之前就剩1个桃子')

for i in range(1, 10):

p = (p+1) * 2

print('第%s天吃之前还有%s个桃子' % (10-i, p))

print('\n第1天共摘了%s个桃子' % p)# 题目5:猜数字问题,要求如下:

# ① 随机生成一个整数

# ② 猜一个数字并输入

# ③ 判断是大是小,直到猜正确

# ④ 判断时间

# 提示:需要用time模块、random模块

# 该题目不需要创建函数

import time

import random

while True:  #循环执行游戏询问

play_or_not = input('是否要进行游戏:是 or 否?')

while play_or_not == '是':

print('\n******游戏开始******\n')

c = time.time()

a = int(input('请输入猜数范围的下界(整数):'))

b = int(input('请输入猜数范围的上界(整数):'))

num = random.randint(a,b)

x = int(input('请输入范围为[%i,%i]的一个整数:'%(a,b)))

while x != num:

if x > num:

b = x

x = int(input('大了,请重新输入[%i,%i]的整数:'%(a,x)))

else :

a = x

x = int(input('小了,请重新输入[%i,%i]的整数:'%(x,b)))

else:

print('恭喜你,猜对了!!')

b = time.time()

usedtime = b-c

print('总用时为:%.2f s'%usedtime)

break

else:

break

语言的魅力真的是无穷无尽的,你可以用你的想法去完善和拓展一个点,相似又不同,有时看似只是加了一句简单的话语,但是其实已经完全改变了程序的功能,这也许就是越进行,越是乐在其中吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值