Python学习日记-2020-12-23

Python学习日记

1. random模块中randint()和choice()的区别:

random.randint(a,b)随机生成[a,b]范围内一个整数,举例如下:

x = [random.randint(0,100) for i in range(20)]

random.choice(seq)可以从任何序列,选取一个随机的元素返回,可以用于字符串、列表、元组等,举例如下:

list0 = [random.choice(range(0,100)) for i in range(20)]

注:以上的代码是等效的,都是从[0,99]中取出20个数字作为一个序列。

2. continue和break区别:

break:用于跳出循环,不会再指定之后的语句,如for后面的else,此时所在的循环体已经结束。

continue:提前结束本次循环,之后的语句提前进入下一循环,所在的循环体没有结束。

举例如下:输入一串字符,分别统计其中大写字母和小写字母的个数并输出

x = input('请输入字符串:')
x = [ str(x[i]) for i in range(len(x)) ]  #将字符串转换为单个字符组成的字符串
print('列表为:',x)
y=Y=0;  #y为小写字母个数,Y为大写字母个数
for i in range(len(x)):
    num=ord(x[i])              #ord()用来返回单个字符的Unicode码
    if num>=65 and num<=90:
        Y+=1;
    elif num>=97 and num<=122:
        y+=1;
    else:
        break
print('大写字母的个数为:',Y)
print('小写字母的个数为:',y)

使用break的结果为:

可以看到空格之后的字母并没有被统计,因为执行过break跳出了循环,不会再进行统计。

x = input('请输入字符串:')
x = [ str(x[i]) for i in range(len(x)) ]  #将字符串转换为单个字符组成的字符串
print('列表为:',x)
y=Y=0;  #y为小写字母个数,Y为大写字母个数
for i in range(len(x)):
    num=ord(x[i])              #ord()用来返回单个字符的Unicode码
    if num>=65 and num<=90:
        Y+=1;
    elif num>=97 and num<=122:
        y+=1;
    else:
        continue
print('大写字母的个数为:',Y)
print('小写字母的个数为:',y)

使用continue的结果为:

3. 使用split()时出错:

x = [input('请输入10个整数(以空格作为间隔):')]
x = x.split(' ')   #使用空格作为分隔符,分割字符串

出现以下错误:

解决如下:

列表类型的参数不能使用split()函数进行分割,只需要去掉[ ]即可,使用split()会返回包含分割结果的列表。

split()括号中可以指定相对应的符号作为分隔符,如此处使用的是空格。

3.1map()和split()混用

实现将输入的字符串转化为int类型数字,第一种使用列表推导式,第二种使用的是map()和split()结合

x = x.split(' ')   #使用空格作为分隔符,分割字符串
print(x)    #得到列表,列表中元素为字符串
x = [ int(x[i]) for i in range(len(x)) ]  #将字符串转换为整型数字
#上面三行代码可以使用下面这一句代替
x=list(map(int,x.split()))   #重点是转换为列表,而不是直接加上[]

4. sorted、sort、reversed、reverse的区别:

函数名 语法 作用范围
sort list.sort( key=None, reverse=False) sort() 函数用于对原列表进行排序
sorted sorted(iterable, cmp=None, key=None, reverse=False) sorted() 函数对所有可迭代的对象进行排序操作
reverse list.reverse() reverse() 函数用于反向列表中元素
reversed reversed(seq) reversed 函数返回一个反转的迭代器。
list.sort( key=None, reverse=False)
sorted(iterable, cmp=None, key=None, reverse=False)

sort和sorted区别:使用范围不同,以及sorted不会修改排序之前的值,可以保留之前的值,而sort会永久修改序列

参数说明:

  • iterable -- 可迭代对象。
  • cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
  • key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
  • reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
list.reverse()
reversed(seq)

reverse和reversed的区别同上。

参数说明:

  • seq -- 要转换的序列,可以是 tuple, string, list 或 range。

第4章 程序控制结构

  1. 关系运算符和逻辑运算符都是惰性求值

  2. 新学的函数:

    函数名称 语法 作用 说明
    join() str.join(sequence) Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串 str是指用什么连接,比如,-等,seq要连接的序列
    三元运算符 value1 if condition else values condition结果为True表达式值为value1,为False时值为value2 特点:惰性求值

    join()举例:

    s1 = "-"
    seq = ("r", "u", "n", "o", "o", "b") # 字符串序列
    print (s1.join( seq ))
    

    结果如下:

    r-u-n-o-o-b
    

    三元运算符举例:

    x = 3
    y = 5
    min0=x if x<y else y  #注意y的位置不要写成min0=y
    print(min0)
    
posted @ 2020-12-24 09:12  妩安Wang  阅读(170)  评论(0)    收藏  举报