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章 程序控制结构
-
关系运算符和逻辑运算符都是惰性求值
-
新学的函数:
函数名称 语法 作用 说明 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)

浙公网安备 33010602011771号