第二周
这周进行了python的学习,主要内容有
1.使用input()进行输入、print()进行输出
2.if; if...else; if...elif...else语句进行条件判断
条件表达式:变量=结果1 if 表达式 else 结果2
3.while循环、for循环
for 迭代变量 in 对象:#for可循环序列或字符串
循环体
while 表达式:
循环体
4.range()函数,生成一系列连续整数
range(start, end, step)包括开头,不包括结尾
5.循环嵌套:for、while、for+while、while+for
6.break语句:用于停止循环;continue语句:用于提前进入下一次循环;pass语句:空语句,占位置
7.索引。通过索引对序列取值
8.切片。用切片从序列中取出一部分内容
9.序列相加,直接加在后面;序列*数=重复序列
10.判断是否是序列成员
元素 in 序列---返回True或False
11.计算序列长度len()
max()返回最大元素(当元素类型是数值时)
min()
list()序列转列表
str()序列转字符串
sum()算元素和
sorted()对元素排序
12.列表的创建
创建:
listname=[元素1,元素2......]
emptylist=[]
list(range[2,21])
删除:
del listname
13.访问列表元素
直接print()
利用索引
利用切片
14.遍历列表
for item in listname:
#输出item
for index,item in enumerate(listname): #前面是索引后面是元素。
# enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中
#输出索引和item
15.增加元素
list.append() 加最后面
list.insert(0 , "xxxx") 在索引值为0处增加
list.extend(seq) 向列表list的最后,添加另一个列表seq
修改元素:
直接list1[1] = "xxx"
删除元素:
根据索引:del list1[2]
根据元素值: remove() #remove() 函数用于移除列表中某个值的第一个匹配项。如,list.remove(obj)
16.对列表的统计计算
count()指定元素出现次数
sum()数值列表中各元素和
index()第一次出现时的索引值
listname.count(obj)
listname.index(obj)
sum(listname,[,start]) #sum还可用于序列
17.对列表排序
sort()函数、sorted()函数 区别在于:是否改变原列表的元素顺序
listname.sort(key = None , reverse = False) 改原顺序,False 升序
sorted(listname, key=None, reverse = False) 不改原列表顺序,False升序
# key = str.lower 可以不区分大小写哦!
18. 列表推导式 可以生成一个列表
list = [Expression for var in range]
list = [Expression for var in list]
list = [Expression for var in list if condition]
19.二维列表
直接写/for循环/列表推导式
下面是代码部分
print()输出
fp = open(r'D:mot.txt','a+')
print("看到这条消息就对啦", file = fp)#输出到文件
fp.close() #关闭文件
if...elif...else,input()
print("roses~ ")
number = int(input('''Enter the number of roses,
and I will tell the meaning.
Please enter:'''))
if number == 1:
print("1 rose: You are my only")
elif number ==1:
print("3 roses: I love you")
elif number ==10:
print("10 roses: Everything all right")
elif number ==99:
print("99 roses: 999999999")
elif number ==108:
print("108 roses: Will you merry me?")
else:
print("I don't know.")
if...elif...else
print("no drink driving!")
proof = int(input("Enter 酒精含量: "))
if proof < 20:
print("不构成饮酒驾驶")
else:
if 20<=proof<=80:
print("drink driving")
else:
print("醉酒驾驶")
while xxx:
print("三三数之剩二,五五数之剩三,七七数之剩二,问几何?
")
none = True #循环需要的条件变量
number = 0 #计数变量
while none:
number = number + 1
if number%3 == 2 and number%5 == 3 and number%7 == 2: #记得打冒号
print(number)
if number >= 200: #只要1-200之间的数
none = False
for xxx:
print("1+2+3+......+100")
result = 0
for i in range(101):
result = result + i
print(result)
for + range()
#range()函数
for i in range(1,11,2):
print(i, end = ' ') # ' '里的东西可以时空格
#输出在一行里
for循环2
print("三三数之剩二,五五数之剩三,七七数之剩二,问几何?
")
for number in range(1000):
if number%3 == 2 and number%5 == 3 and number%7 == 2: #记得打冒号
print(number, end=' ')
for循环3,可以遍历字符串
string = "不要1说不能"
print(string)
for ch in string: #for还可以遍历字符串!!!
print(ch)
循环嵌套
for row in range(1,5):
print("当前所在排: ",row)
if 2==row:
print("第二排是我座位所在")
for column in range(1,8):
print("当前所在列: ",column)
if column==3:
print("这是您的座位")
九九乘法表
print("九九乘法表")
for i in range(1,10):
for j in range(1,i+1):
print(j,"×",i,"=",j*i,end = ' ')
print(" ")
拍桌子游戏
total = 0 #拍__次桌子
for number in range(1,100): #1-99
if number%7 == 0: #7的倍数
total=total+1
continue
else:
string = str(number)
if string.endswith('7'): #判断是否以7结尾
total=total+1
continue
print("1-99可拍桌子次数",total,"次")
pass占位置
for i in range(1,10):
if i % 2 == 0:
print(i,end = ' ') #输出偶数
else:
pass #占位,啥也不干
索引
string = "上单之光。"
print(string[1]) #从左开始数
print(string[-1]) #从右开始数
列表切片、相加、乘法
nba = ["姚明","奥尼尔","乔丹","詹姆斯","科比","周琦"]
badminton = ["林丹","谌龙","石头"]
print(nba[0:4])
print(nba[0:5:2])
print(nba[0:5:3]+badminton*2)
判断是否是列表成员
nba = ["姚明","奥尼尔","乔丹","詹姆斯","科比","周琦"]
badminton = ["林丹","谌龙","石头"]
print("科比" in nba[1:5])#判断是否在列表当中
print("科比" not in nba[1:5])#判断是否不在列表当中
计算序列长度
number = [15,20,930,60,80]
print("列表的长度:", len(number))
string = "我学python"
print("列表的长度:", len(string))
print(max(number))
print(min(number))
print(sorted(number)) #对序列进行排序
print(sum(number)) #算元素和
创建、访问列表元素
python = ["python",28,"hello!",["Good","nice","how are you"]]
print(python)
print(python[2])
print(python[1:4:1])
#输出每日一帖
import datetime #日期时间类
mot = ["Today is Monday:
Good morning!",
"Today is Tuesday:
Good morning!",
"Today is Wedsday:
Good morning!",
"Today is Thursday:
Good morning!",
"Today is Friday:
Good morning!",
"Today is Saturday:
Good morning!",
"Today is Sunday:
Good morning!"]
day = datetime.datetime.now().weekday() #获取当前星期(用的是0-6)
print(mot[day])
添加元素
phone = ["摩托罗拉","诺基亚","三星","OPPO"]
print(len(phone))
phone.append("iphone") #append()增加元素
print(phone)
phone.insert(0,"没有手机") #insert()插入元素,查到索引值为0处
print(phone)
oldlist = ["Tom","Tompson","Tiffa","Tony"]
newlist = ["Kite","Karter","Kiky"]
oldlist.extend(newlist) #把newlist加到oldlist后面
print(oldlist)
修改元素
list1 = ["第一句","第二局","第三句"]
list1[2] = '第3句' #修改元素
print(list1)
if "第3句" in list1:
list1.remove("第3句") #或者用:del list1[2]进行删除。逻辑为“如果‘第三句’在,则删除它”,这样如果‘第三句’不存在,不会报错
print(list1)
对列表统计计算
song = ["Song1","Song2","Song3","Song4","Song1"]
number = song.count("Song1") #指定元素在列表中出现次数
print(number)
if "Song4" in song: #如果"Song4"存在的话
number2 = song.index("Song4")+1 #指定元素在列表中的位置
print(number2)
list1 = [90,89,100,95,74,88]
total = sum(list1,1000) #从1000开始加
print(total)
对数字序列排序
grade = [99,95,80,76,100,64,88]
print("Grades are: ",grade)
grade.sort() #升序排列(reverse = False)
print("升序: ",grade)
grade.sort(reverse = True) #降序排列
print("降序: ",grade)
#对字符串列表排序
print("
对字符串列表排序")
char = ['cat','Tom','Angelica','pet']
print("They are: ",char)
char.sort(key = str.lower)#升序排列 使用listname.sort(key = str.lower),不区分大小写按字母顺序排序
print("升序: ",char)
#使用sorted()
print("
")
char = ['cat','Tom','Angelica','pet']
print("They are: ",char)
char1 = sorted(char) #sorted()是建立了一个副本,在副本里排序,所以不改变原列表的顺序,这里char1就是那个副本
print("升序: ",char1) #sorted()是对原序列生成了一个副本,在副本里改元素顺序;不改变原列表元素顺序
print("They are: ",char)
列表推导式
import random #导入生成随机数模块儿
list1 = [] #空列表
for i in range(10): #一共加10次
list1.append(random.randint(10,100)) #向列表添加10—100的随机数
print(list1) #括号里的是加进的元素,一共加10次
#Or you can try this:
list2 = [random.randint(10,100) for i in range(10)] #这就是列表推导式
print(list2)
#1-10之间所有偶数平方
list3 = [ i*i for i in range(2,11,2)]
print(list3)
#价格打五折
price = [800,1888,299,660,80]
sale = [int(i*0.5) for i in price]
print(sale)
#列表中的元素组成一个新列表
price = [800,1888,299,660,80]
sale = [i for i in price if i>=800]
print(sale)
二维列表
#使用for循环写房间号
room = []
for i in range(1,5): #1—4层
room.append([]) #空列表里添加一个空列表,填了4行
for j in range(1,8): #1—8列
room[i-1].append(i*1000+100+j) #为每一行的列表添加元素
print(room)
#使用列表推导式写房间号
room = [ [i*1000+100+j for j in range(1,8)] for i in range(1,5)]
print(room)
#写首诗
str1 ="千山鸟飞绝"
str2 ="万径人踪灭"
str3 ="孤舟蓑笠翁"
str4 ="独钓寒江雪"
list1 = [list(str1),list(str2),list(str3),list(str4)]
print("
横板
")
for i in range(4): #古诗行数
for j in range(5): #古诗每一行的字数
if j == 4: #如果是一行的最后一个字(j==4),则换行
print(list1[i][j])
else : #否则不换行
print(list1[i][j],end ='')
#再写竖版诗
list1.reverse() #反转列表中各元素,
print("
竖板
")
for i in range(5):
for j in range(4):
if j == 3:
print(list1[j][i])
else:
print(list1[j][i],end='')