学习之旅week5

一:python列表基础

  • 列表
    索引:列表名【开始索引:结束索引:步长】
    开始索引:默认为0
    结束索引:默认为最后一个元素
    步长:默认为1,非0整数,若为负数则从右到左提取元素
  • 使用+运算符,将一个新列表添加到原列表尾部
    举一个栗子:

学习之旅week5输出:
学习之旅week5

  • 在末尾添加字符串元素
list_.append(6)
  • 将一个列表的全部元素添加到列表的尾部
list_=[1,2,3,4,5]
list_.extend([6,7,8])
print(list_)
  • 插入元素

insert()里面有两个参数:第一个是要插入元素的下标,第二个是要插入的元素

list_=[1,2,4,5]
list_.insert(2,3)
print(list_)
  • 检索元素
    1.index(value,[,start,[,end]])
    此方法可以获取指定元素首次出现的下标
list_=[1,2,3,4,5,6,7,8,2,9]
print(list_.index(2,4,9))

2.count()
统计列表中元素出现的次数

list_=[1,2,3,4,5,6,7,8,2,9]
print(list_.count(2))

3.in或者not in运算符检索某个元素是否在该列表中

  • 删除元素:
    1.del删除指定位置的元素,删除后该元素的后面元素自动向前移动一位
list_=[1,2,3,4,5,6,7,8,2,9]
del list_[3]
print(list_)

2.del直接删除整个列表:

list_=[1,2,3,4,5,6,7,8,2,9]
del list_
print(list_)

3.remove删除指定元素

list_=[1,2,3,4,5,6,7,8,2,9]
list_.remove(2)
print(list_)
list_.remove(2)
print(list_)
list_.remove(2)
print(list_)

输出:
学习之旅week54.pop删除并返回指定位置上的元素
缺剩参数时,删除最后一个元素

list_=[1,2,3,4,5,6,7,8,2,9]
print(list_.pop(2))

输出:3

二:python列表常用函数:

cmp()

cmp(列表1,列表2)
若相同,则返回0

<>=
比较两个列表:
返回值为true或者false

三:杨辉三角:

a = []
n = int(input())
for i in range(n+1):
    a.append([0])
a[0].append(1)
for i in range(1,n+1):
    for j in range(1,i+1):
        a[i].append(a[i-1][j-1]+a[i-1][j])
    a[i].append(0)
for i in range(1,n+1):
    print(" "*(n-i),end='')
    for j in range(1,i+1):
        print(a[i][j],end=' ')
    print('')

四:列表去重

L1 = []
L1=eval(input())
L2 = []
for x in L1:
    if x not in L2:
        L2.append(x)
l = len(L2)
for i in range(l-1):
    print(L2[i], end=' ')
print(L2[l-1])

五: 删除指定字符

s1 = input().strip()
s2 = input().strip()
s1 = s1.replace(s2.upper(), '').replace(s2.lower(), '')
print("result: {}".format(s1))

六:阶乘以及阶乘和

n = int(input())

def fact(n):
    if n == 0 or n == 1:
        return 1
    else:
        return (n * fact(n-1))
    
print("fact(%d)="%(n),end="")
print(format(fact(n)))
sum=0
for i in range (1,n+1):
    sum+=fact(i)
if n==0:
    print("sum=1")
elif n>0:
    print("sum=%d"%sum,end="")

七:爬楼梯问题

n=int(input())
def demo(n):
    d={1:1,2:2,3:4}
    if n in d.keys():
        return d[n]
    else:
        return demo(n-1)+demo(n-2)+demo(n-3)
print(demo(n))

八:文件

  • 文件分类
    ASCLL码文件
    二进制码文件

  • 文件的操作流程

    1、建立/打开文件
    当为写而打开文件时, 若文件不存在, 系统会建立该文件并打开;
    当为读而打开文件时, 该文件应该是已存在的, 否则会出错。
    2、从文件中读数据或向文件中写数据
    3、关闭文件
    取消程序与指定的数据文件之间的联系,表示文件操作的结束。

  • 文件类型指针

typedef struct
{ 
   short level;                        /* 缓冲区“满”或“空”的程度 */
   unsigned flags;                 /* 文件状态标志 */
   char fd;                              /* 文件描述符 */
   unsigned char hold;         /* 如无缓冲区不读取字符 */
   short bsize;                       /* 缓冲区的大小 */
   unsigned char *baffer;    /* 数据缓冲区的读写位置 */
   unsigned char *curp;       
   unsigned istemp;             /* 临时文件,指示器 */
   short token;                      /* 用于有效性检查 */
}FILE; 
  • 定义文件类型的指针

    FILE *fp;

  • 文件的打开与关闭

FILE *fp;
fp=fopen(”e:/soft/tc/stu.txt”,”wt”);
FILE *fp;
fp=fopen(”stu”,”r”); 
fclose(fp);
  • 文本文件的三种基本使用方式
    ”r”:只读方式
    为读(输入)文本文件打开文件。若文件不存在,返回NULL。
    ”w”:只写方式
    为写(输出)文本文件打开文件。若文件不存在,则建立一个新文件;若文件已存在,则清空文件。
    ”a”:追加方式
    为写(输出)文本文件打开文件。若文件已存在,则保持原来文件的内容,将新的数据增加到原来数据的后面;若文件不存在,则返回NULL。

  • 判断是否成功

    if(NULL==fp){
    printf(“打开文件失败”);
    }
    读写函数:
    1.单字符读写函数fgetc和fputc

ch=fgetc(fp);
fputc(’a’,fp);

2.字符串读写函数fgets和fputs
fgets(字符数组名,n,文件指针);
其中n是正整数,表示读出的字符数最多为 n-1个;若遇到换行符或EOF读取结束; 将读出的串存到字符数组中, 并在最后一个字符后加上字符串结束标志‘\0’。

fp=fopen("string.txt","rt");
char str[10];
fgets(str,5,fp);

fputs(字符串,文件指针);

fputs("abcd",fp);

把字符串“abcd”写入fp所指的文件之中。
3.格式化读写函数fscanf和fprintf
fscanf(文件指针,格式字符串,输入表列);
fprintf(文件指针,格式字符串,输出表列);

fscanf(fp,“%d,%f”,&i,&f);

从文件指针fp所指向的文件中,按照格式字符串
指定的格式 将文件中的数据输入到i,f的地址里。

fprintf(fp,“%d,%f”,i,f);

将i,f的变量值按照格式字符串指定的格式输出到
文件指针fp所指向的文件里。

上一篇:C++编程学习笔记 week5


下一篇:spring源码解析(3)-BeanDefinition