小白训练之路-day1

基本数据类型

  • 整形
    i = 3
    print(id(i)) #地址
    i += 1
    print(i)
    
  • 字符型
    str = 'PyString'
    print(str[1:3]) #第二、三个字符   yS
    print(str[-3:-1]) #倒数第三、二 in
    print (str[2:-1]) #正数第三个 到 倒数第二个字符 yStrin
    print (str[-5:8]) #倒数第五个正数第7个 tring
    print (str[2:]) #第三个到结束 #String
    print (str * 2) #输出字符串两次
    print (str + "Test") #连接 
    >ySin
    >ng
    >Strin
    >tring
    >String
    >PyStringPyString
    >PyStringTEST
    
  • 列表
    1. 列表定义
      list = ['a',56,1.13,'facebook',[7,8,9]]
      print(list) #完整列表
      print(list[4]) #第五个元素
      print(list[-2:5]) # 从倒数第二个到正数第五个元素  
      print(list[2:])   # 第三个元素开始的所有元素
      >['a', 56, 1.13, 'facebook', [7, 8, 9]]
      >[7, 8, 9]
      >['facebook', [7, 8, 9]]
      >[1.13, 'facebook', [7, 8, 9]]
      
    2. 列表的遍历
      list = ['蚂蚱','螳螂','蝈蝈','蝗虫','蛐蛐']
      for item in list:
          print(item,end=" ") #不换行 “空”
      >蚂蚱 螳螂 蝈蝈 蝗虫 蛐蛐 
      
  • 元组
    1. 基本使用
      tuple = ('SpiderMan',2017,33.4,'Homecoming',14)
      newtuple=(16,'test')
      print(tuple)  #完整输出
      >('SpiderMan', 2017, 33.4, 'Homecoming', 14)
      print(tuple[2:4])
      >(33.4,'Homecoming')
      print(tuple + newtuple) #连接
      >('SpiderMan', 2017, 33.4, 'Homecoming', 14, 16, 'test')
      
    2. 修改数据项
      tuple = ([16, 'Marvel'] , 'SpiderMan',2017 ,33.4, 'Homecoming', 14,) 
      print(tuple[0])
      tuple[0][0]='Marvel'
      tuple[0][1]='16'
      print(tuple)
      >[16, 'Marvel']
      >(['Marvel', '16'], 'SpiderMan', 2017, 33.4, 'Homecoming', 14)
      
  • 字典
    1. 定义
      dict = {'Name':'Mary','Age':7,'Class':'First'}
      print(dict);
      >{'Name': 'Mary', 'Age': 7, 'Class': 'First'}
      print("Name: ", dict['Name'])
      print("Age: ", dict['Age'])
      >Name: Marg
      >Age: 7
      
    2. 添加字典元素
      dict['Gender'] = "Female"
      dict
      > {'Name': 'Mary', 'Age': 7, 'Class': 'First', 'Gender': 'Female'}
      
  • 集合
    #1.
    var = set()
    print(var,type(var)) #显示集合内容和集合类型
    >set() <class 'set'>
    #2.
    var = {'LiLei','HanMeiMei','ZhangHua', 'LiLei', 'LiLei'}
    print(var,type(var)) #显示集合内容和类型
    >{'LiLei', 'ZhangHua', 'HanMeiMei'} <class 'set'>
    #3.判断元素是否在集合内
    result = 'LilEI' in var
    print(result)
    > true
    
  • exe:遍历anml={‘紫貂’,‘松貂’,‘青鼬’,'狼獾’}
    anml = ['紫貂','松貂','青鼬','狼獾']
    for i in range(len(anml)):
    print(anml[i])
    

数据文件读写

  • 使用with语句打开文件 (可以省略close语句)
    with open('INFO.txt','a') as f:     # 'a'表示添加数据,不清楚原数据
      f.write(add tail. \n)
    #文件读取1:读取整个文件
    with open('INFO.txt') as f: #默认模式为‘r’,Read Only
      str = f.read(5) #读取5个字符
      print(str)
      contents = f.read() #从当前位置,读取全部内容
      print(contents)
      >I maj
      >or.............
    #文件读取2:逐行读取 也可以使用readLine()函数
    with open('INFO.txt') as f:
      line1 = f.readline()  #读取一行,此时指向第一行末尾
      print(line1.strip())  #移除字符串头尾指定的字符 此处移除换行
    #读取文件3:读当前位置后的所有行,默认位置为文件头
    with open('INFO.txt') as f:
      lines = f.readlines() #读取一个列表,每个元素对应一行
    print(lines)  #读取列表 每行数据包含一个\n
    for line in lines:
      print(line.restrip())
    #读取文件4:使用迭代器循环读取
    with open('dataH.txt') as f:
      for lineData in f:
        print(lineData.rstrip())   #lstrip rstrip 去左部,去右部```
    
  • Pandas存取文件
    • read_csv()|to_csv()等 # 读取cvs文件(.dat .txt .csv等)
      #会自己产生索引 其中属性header = 0,index_col = 0 建立列 行序号.(默认header = 0,列index_col = None)
    import pandas as pd
    data1 = pd.read_csv('dataH.txt')
    print(data1)
    print('-----')
    data2 = pd.read_csv('dataH.txt', header = 0, sep=' ')
    print(data2)  # sep:指明分隔符   
    print('-----')
    data3 = pd.read_csv('dataH.txt', header =None,sep=' ')
    print(data3)
    #写入文件
    data3.to_csv('HW3.csv')  #属性 index(通常=false)```
    
  • Numpy存取文件
  • loadtxt() | savetxt()
    1.->loadtxt(fileName, dtype=int,delimiter=’ ', usecols=(列号)) #将文件载入为某类型 以delimiter分隔 选取第几列
    2.savetxt(文件名,对象,fmt=“%d”, delimiter=“,”) #保存
import numpy as np 
#采用字符串数组读取文件
tmp = np.loadtxt("dataH.txt", type=np.str, delimiter=" ")
print(temp)
print("----------------")
tmp1 = np.loadtxt("dataH.txt", type=np.str, usecols=(1,2))
print(tmp1)
#保存文件
x=[1,2,3]
y=[4,5,6]
z=[7,8,9]
np.savetxt('XYZ.txt', (x,y,z))
练习:建立file.ipynb文件。读取文件"fruit_data_with_colors.txt"前十行数据,并显示
# 1.pandas
import panads as pd
data = pd.read_csv('fruit_data_with_colors.txt', sep='\t')
print(data.iloc[:10])
# -》结果 我不知道怎样才能把第一列删了且不影响第一行
>   fruit_label fruit_name fruit_subtype  mass  width  height  color_score
>0            1      apple  granny_smith   192    8.4     7.3         0.55
>1            1      apple  granny_smith   180    8.0     6.8         0.59
>2            1      apple  granny_smith   176    7.4     7.2         0.60
>3            2   mandarin      mandarin    86    6.2     4.7         0.80
>4            2   mandarin      mandarin    84    6.0     4.6         0.79
>5            2   mandarin      mandarin    80    5.8     4.3         0.77
>6            2   mandarin      mandarin    80    5.9     4.3         0.81
>7            2   mandarin      mandarin    76    5.8     4.0         0.81
>8            1      apple      braeburn   178    7.1     7.8         0.92
>9            1      apple      braeburn   172    7.4     7.0         0.89
# 2.numpy
import numpy as np
print('-----------')
data4 = np.loadtxt('fruit_data_with_colors.txt', dtype=np.str, delimiter="\t")
print(data4[:10])
# -》结果
> [['fruit_label' 'fruit_name' 'fruit_subtype' 'mass' 'width' 'height'
'color_score']
>['1' 'apple' 'granny_smith' '192' '8.4' '7.3' '0.55']
>['1' 'apple' 'granny_smith' '180' '8.0' '6.8' '0.59']
>['1' 'apple' 'granny_smith' '176' '7.4' '7.2' '0.60']
>['2' 'mandarin' 'mandarin' '86 ' '6.2' '4.7' '0.80']
>['2' 'mandarin' 'mandarin' '84 ' '6.0' '4.6' '0.79']
>['2' 'mandarin' 'mandarin' '80 ' '5.8' '4.3' '0.77']
>['2' 'mandarin' 'mandarin' '80 ' '5.9 ' '4.3' '0.81']
>['2' 'mandarin' 'mandarin' '76' '5.8' '4.0' '0.81']
>['1' 'apple' 'braeburn' '178' '7.1' '7.8' '0.92']]
# 3.with open
line = 0
lines = ""
with open('fruit_data_with_colors.txt') as f:
while line <= 10:
    lines = lines + f.readline()
    line = line + 1
print(lines)
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值