概述
python入门
- 主要内容
- 第2章 py开始:注释,变量,常量,大小写转换,删除空格,创建文件,数据类型的转换str()
- exercise 1
- exercise 2
- exercise 3
- exercise 4
- exercise 5
- exercise 6
- 第3章 访问列表 del() pop() insert() sort() sorted() reverse()
- exercise 1
- exercise 2
- exercise 3 append(),insert(),remove()的综合用法
- exercise 4 综合练习
- exercise 5
- exercise 6 sort()和sorted()的细微差别
- 第4章 操作列表 注:缩进代码,这点不同于C、C++
- exercise 1 for循环
- exercise 2 range()使用
- exercise 5 简单的数据统计
- exercise 6 切片创建:相当于把原来的列表拷贝了一份儿存储在另外一个新的列表里面
- exercise 7 列表的关联,一个改变,另一个也改变。(简单修改exercise 4)
- exercise 6 元组:创建,基本使用方法,类似C语言里面的constant ;'tuple' object does not support item assignment
- 第5章 if语句
- exercise 1
- exercise 2 if-elif-else
- 第 6章 字典
- exercise 1 创建字典,并对字典中的值操作
- exercise 2 遍历字典中的数据,包括,键和值
- exercise 3 遍历字典时候会默认遍历所有的键,也可用keys()——返回键值列表 来遍历;同样对“值“调用时候使用函数“values()”
- exercise 4 需要对返回键进行排序时用函数sorted()来获得按特定顺序排列的键列表的副本
- exercise 5
- exercise 6 字典中存储列表,每个人喜欢的语言有可能有多种
- exercise 7 列表中中套用字典
- exercise 8 列表中的元素是字典,遍历列表中元素的元素
- exercise 9 字典中的元素是字典(且各个键都不一样,此时使用for循环遍历更方便)
- 第 7章 用户的输入和while循环
- exercise 1
- exercise 2
- exercise 3 标志的合理利用,提高代码的健壮性
- exercise 4
- exercise 5
- exercise 6
- exercise 7 转移朋友从一个位置到另外一个位置
- exercise 8
- exercise 9
- 第8章 函数学习
- exercise 1
- exercise 2
- exercise 3
- exercise 4
- exercise 5
- exercise 6 函数综合练习
- exercise 7
- exercise 8 接收任意数量的实参用星元组即可
- exercise 9
- 第9章 类
- exercise 1 1.类的定义及其实例化:
- exercise 2
- exercise 3 继承
- exercise 4
- 总结
主要内容
文章主要是记录学习《python编程:从入门到实践》中的一些基本语法知识。第2章 py开始:注释,变量,常量,大小写转换,删除空格,创建文件,数据类型的转换str()
exercise 1
#单多行注释就一个组合键:选中+Ctrl+/
# name: Wang Aiqiang
# time:
10:53
# target:how to use variable and save to
file
fp=open('D:/py_learn/first_code','a+')
message="my name is 'Ln'"
# print("hello world,i am a Chinese",file=fp)
print(message,file=fp)
print(message)
# change variable message,then print and save as first_code
message='change my name is "waq" '
print(message,file=fp)
print(message)
fp.close()
exercise 2
#target: big and small change learn
#补充 title()以首字母大写的方式显示每个单词,即将每个单词的首字母都改为大写。
name = "Ada Lovelace"
# 函数upper()和lower()不会影响原来存在变量name中的值
print(name.upper())
print(name.lower())
#print under
ADA LOVELACE
ada lovelace
exercise 3
#target :string link ; create table char :t and next line:n
first_name = "my name"
print(first_name)
last_name = "is WAQ"
print("last_name")
full_name = first_name+" "+last_name
print("nhello,"+full_name.title()+"!")
exercise 4
# target:delete blank,however if we want forever to delete,we must save result in a variable
>>> favorite_language="python
"
>>> print(favorite_language)
python
>>> favorite_language='python
'
>>> favorite_language
'python
'
>>> favorite_language.rstrip()
'python'
>>> favorite_language
'python
'
>>> favorite_language=favorite_language.rstrip()
>>> favorite_language
'python'
>>>
exercise 5
# y剔除字符串两边的空格,左边调用lstrip(),右边rstrip(),同时两边剔除空格:strip()
>>> favorite_language="
python
"
>>> favorite_language
'
python
'
>>> favorite_language.lstrip()
'python
'
>>> favorite_language.rstrip()
'
python'
>>> favorite_language.strip()
'python'
>>>
exercise 6
#数据运算
7
>>> 2/5
0.4
>>> 100000/3.66
27322.4043715847
>>> 3***3
File "<stdin>", line 1
3***3
^
SyntaxError: invalid syntax
>>> 3**3
27
>>> 0.2+0.1
0.30000000000000004
>>> 1/3
0.3333333333333333
>>> 1/0.3
第3章 访问列表 del() pop() insert() sort() sorted() reverse()
exercise 1
#target:列表以及列表元素的访问,注意
bicycle = ["ruijun","aiqiang","liangliang","xiaxia"]
# print(bicycle)
# print(bicycle[1])
# print(bicycle[0].title())
# print(bicycle[-1])
# print(bicycle[-2])
name_infor0 = "my friend name is "+bicycle[0]+'.'
name_infor1 = "my friend name is "+bicycle[1]+'.'
name_infor2 = "my friend name is "+bicycle[2]+'.'
name_infor3 = "my friend name is "+bicycle[3]+'.'
print(name_infor0)
print(name_infor1)
print(name_infor2)
print(name_infor3)
exercise 2
bicycle = ["ruijun","aiqiang","liangliang","xiaxia"]
# 从列表中插入元素的方法
bicycle.append("dongxia")
bicycle.append("xuanxuan")
print(bicycle)
bicycle.insert(0,"guanghui")#第一个位置处插入字符串:guanghui
print(bicycle)
# 删除列表中元素的方法
# del彻底从列表里面删除了 ,pop数据删除后可以回收利用
# del bicycle[0],bicycle[1]
# print(bicycle)
pop_bicycle=bicycle.pop(0)
print(bicycle)
print(pop_bicycle)
#执行结果
['ruijun', 'aiqiang', 'liangliang', 'xiaxia', 'dongxia', 'xuanxuan']
['guanghui', 'ruijun', 'aiqiang', 'liangliang', 'xiaxia', 'dongxia', 'xuanxuan']
['ruijun', 'aiqiang', 'liangliang', 'xiaxia', 'dongxia', 'xuanxuan']
guanghui
exercise 3 append(),insert(),remove()的综合用法
#根据某个给定的值删除列表里面的具体元素
#使用范围:有些情况下不清楚需要删除的数据在列表中的具体位置,而是仅仅给出了一个需要删除的数据
bicycle = ["ruijun","aiqiang","liangliang","xiaxia"]
# 从列表中插入元素
bicycle.append("dongxia")
print(bicycle)
#修改列表里面的元素
bicycle[1]="WAQ"
print(bicycle)
bicycle.insert(0,"guanghui")
print(bicycle)
#删除列表里面的第一个元素,删除多个重复出现的则用循环搞定
bicycle.remove("guanghui")
print(bicycle)
exercise 4 综合练习
3-6 添加嘉宾:你刚找到了一个更大的餐桌,可容纳更多的嘉宾。请想想你还想邀
请哪三位嘉宾。
以完成练习 3-4 或练习 3-5 时编写的程序为基础,在程序末尾添加一条 print 语
句,指出你找到了一个更大的餐桌。
使用 insert()将一位新嘉宾添加到名单开头。
使用 insert()将另一位新嘉宾添加到名单中间。
使用 append()将最后一位新嘉宾添加到名单末尾。
打印一系列消息,向名单中的每位嘉宾发出邀请。
3-7 缩减名单:你刚得知新购买的餐桌无法及时送达,因此只能邀请两位嘉宾。
以完成练习 3-6 时编写的程序为基础,在程序末尾添加一行代码,打印一条你只
能邀请两位嘉宾共进晚餐的消息。
使用 pop()不断地删除名单中的嘉宾,直到只有两位嘉宾为止。每次从名单中弹
出一位嘉宾时,都打印一条消息,让该嘉宾知悉你很抱歉,无法邀请他来共进
晚餐。
对于余下的两位嘉宾中的每一位,都打印一条消息,指出他依然在受邀人之列。
使用 del 将最后两位嘉宾从名单中删除,让名单变成空的。打印该名单,核实程
序结束时名单确实是空的。
# name: Wang Aiqiang
# time:
19:36
friend_table=["zhigang","huijun","gabin","gaqiang","xiaojun"]
print(friend_table)
print("I find a bigger table")
friend_table.insert(0,"ruijun")
print(friend_table)
friend_table.append("xuanxaun")
print(friend_table)
print("I can invite two friend:"+friend_table[0]+" and "+friend_table[1])
friend_table.pop(-1)
friend_table.pop(-1)
friend_table.pop(-1)
friend_table.pop(-1)
friend_table.pop(-1)
print("welcome two friends",friend_table[0]+" "+friend_table[1])
del friend_table[0],friend_table[0]
print(friend_table)
执行结果:
['zhigang', 'huijun', 'gabin', 'gaqiang', 'xiaojun']
I find a bigger table
['ruijun', 'zhigang', 'huijun', 'gabin', 'gaqiang', 'xiaojun']
['ruijun', 'zhigang', 'huijun', 'gabin', 'gaqiang', 'xiaojun', 'xuanxaun']
I can invite two friend:ruijun and zhigang
welcome two friends ruijun zhigang
[]
Process finished with exit code 0
exercise 5
sort() and sorted() 以及 sort(reverse=True),sorted(reverce=True) sorted()仅仅是对列表临时排序,为了展示方便
# name: Wang Aiqiang
# time:
19:36
friend_table=["zhigang","huijun","gabin","gaqiang","xiaojun"]
print(friend_table)
# print(friend_table.sort()) #这种写法错误
print(sorted(friend_table))
# 此处True首字母必须要大写
friend_table.sort(reverse=True)
print(friend_table)
# 改变列表的排列顺序
friend_table.reverse()
print(friend_table)
friend_table.reverse()
print(friend_table)
执行结果:
['zhigang', 'huijun', 'gabin', 'gaqiang', 'xiaojun']
['gabin', 'gaqiang', 'huijun', 'xiaojun', 'zhigang']
['zhigang', 'xiaojun', 'huijun', 'gaqiang', 'gabin']
['gabin', 'gaqiang', 'huijun', 'xiaojun', 'zhigang']
['zhigang', 'xiaojun', 'huijun', 'gaqiang', 'gabin']
exercise 6 sort()和sorted()的细微差别
friend_table=["zhigang","huijun","gabin","gaqiang","xiaojun"]
print(friend_table)
print(sorted(friend_table))
print(friend_table)
# print(sort(friend_table)) 这种写法错误
friend_table.sort()
print(friend_table)
执行结果
['zhigang', 'huijun', 'gabin', 'gaqiang', 'xiaojun']
['gabin', 'gaqiang', 'huijun', 'xiaojun', 'zhigang']
['zhigang', 'huijun', 'gabin', 'gaqiang', 'xiaojun']
['gabin', 'gaqiang', 'huijun', 'xiaojun', 'zhigang']
Process finished with exit code 0
第4章 操作列表 注:缩进代码,这点不同于C、C++
exercise 1 for循环
#for循环的缩进注意下,以及for循环里面的临时变量的命名
#for cat in cats:
#for dog in dogs:
#for item in list_of_items:
animals=["dog","cat","rabbit","bird"]
for animal in animals:
print(animal.title()+" "+"is one of my favorite animals")
print("Any of these animals would make a great pet!")
#执行结果:
Dog is one of my favorite animals
Cat is one of my favorite animals
Rabbit is one of my favorite animals
Bird is one of my favorite animals
Any of these animals would make a great pet!
Process finished with exit code 0
exercise 2 range()使用
# range()里面的第一个参数代表起始的数据,11-1代表结束的数据,默认情况下的步长是1,第三个参数可以修改步长为任意值
for value in range(1,11,3):
print(value)
# 执行结果:
1
4
7
10
Process finished with exit code 0
exercise 3
使用list()可以将生成的数据转换为列表
value=list(range(1,11,3))
print(value)
# 执行结果
[1, 4, 7, 10]
Process finished with exit code 0
exercise 4 综合练习 range(),append():创建空列表,在空列表里面添加新的元素
squares1 = []
for value in range(1,5,1):
square=value**2
squares1.append(square)
print(squares1)
exercise 5 简单的数据统计
number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
max_num=max(number)
min_num=min(number)
sum_num=sum(number)
print(max_num)
print(min_num)
print(sum_num)
# 执行结果
9
0
45
Process finished with exit code 0
exercise 6 切片创建:相当于把原来的列表拷贝了一份儿存储在另外一个新的列表里面
my_numbers=list(range(1,11,2))
print(my_numbers)
she_numbers=my_numbers[:]
print(she_numbers)
# 打印的时候只打印:she_numbers[0]-she_numbers[2]
print(she_numbers[0:3])
my_numbers[0]="0"
she_numbers[0]="10"
print(my_numbers)
print(she_numbers)
# 执行结果:
[1, 3, 5, 7, 9]
[1, 3, 5, 7, 9]
[1, 3, 5]
['0', 3, 5, 7, 9]
['10', 3, 5, 7, 9]
Process finished with exit code 0
exercise 7 列表的关联,一个改变,另一个也改变。(简单修改exercise 4)
my_numbers=list(range(1,11,2))
print(my_numbers)
she_numbers=my_numbers
print(she_numbers)
# 打印的时候只打印:she_numbers[0]-she_numbers[2]
print(she_numbers[0:3])
my_numbers[0]="0"
she_numbers[0]="10"
print(my_numbers)
print(she_numbers)
# 执行结果
[1, 3, 5, 7, 9]
[1, 3, 5, 7, 9]
[1, 3, 5]
['10', 3, 5, 7, 9]
['10', 3, 5, 7, 9]
Process finished with exit code 0
exercise 6 元组:创建,基本使用方法,类似C语言里面的constant ;‘tuple’ object does not support item assignment
my_numbers=("a","b","c","d")
print(my_numbers)
she_numbers=my_numbers
print(she_numbers)
# 打印的时候只打印:she_numbers[0]-she_numbers[2]
print(she_numbers[0:3])
# 执行结果:
('a', 'b', 'c', 'd')
('a', 'b', 'c', 'd')
('a', 'b', 'c')
第5章 if语句
注意:如果你只想执行一个代码块,就使用if-elif-else结构;如果要运行多个代码块,就使用一系列独立的if语句。
赋值:=
判断:==;!=;<=;>=;
逻辑:and;or;in(检查特定值是否包含在列表中) user in banned_users: ; not in(检查特定值是否不包含在列表中) if user not in banned_users:
exercise 1
my_friend=23
her_friend=24
if (my_friend!=22) or (her_friend!=21):
print("YES")
else:
print("FALSE")
执行结果:
YES
Process finished with exit code 0
exercise 2 if-elif-else
age=99
if age<2:
print("He is a baby.")
elif (age>=2)and(age<4):
print("He is learning how to walk")
elif (age>=4)and(age<13):
print("He is a children")
elif (age>=13)and(age<20):
print("He is a teeanger")
elif (age>=20)and(age<65):
print("He is a adult")
else:
print("He is an old man")
执行结果:
He is an old man
Process finished with exit code 0
#修改 age=2
He is learning how to walk
Process finished with exit code 0
#按下面的说明编写一个程序,模拟网站确保每位用户的用户名都独一无二的方式。
#创建一个至少包含 5 个用户名的列表,并将其命名为 current_users。
#再创建一个包含 5 个用户名的列表,将其命名为 new_users,并确保其中有一两个用户名也包含在列表 current_users 中。
#遍历列表 new_users,对于其中的每个用户名,都检查它是否已被使用。如果是这样,就打印一条消息,指出需要输入别的用户名;否则,打印一条消息,指出这个用户名未被使用。
current_users=["ruijun","zhigang","huijun","ganqiang","gabing"]
new_users=["ruijun","guanghui","zhanglei","huijun","xuanxuan"]
for new_user in new_users:
if new_user in current_users:
print("input other name:"+new_user)
else:
print("this user is not used:"+new_user)
#执行结果:
input other name:ruijun
this user is not used:guanghui
this user is not used:zhanglei
input other name:huijun
this user is not used:xuanxuan
Process finished with exit code 0
第 6章 字典
exercise 1 创建字典,并对字典中的值操作
#Python不关心键—值对的存储顺序,而只跟踪键和值之间的关联关系
#创建字典 两个键-值对
position = {
"y_position":"1",
"z_position":"3"
}
print(position)
del position["z_position"],position["y_position"]
print("n",position)
#执行结果:
{'y_position': '1', 'z_position': '3'}
{}
exercise 2 遍历字典中的数据,包括,键和值
messages={
"first_name":"Wang",
"last_name":"Aiqiang",
"xing":"male",
"age":"24",
}
# item()返回一个键值对列表
for key,value in messages.items():
print("nkey",key)
print("value",value)
#执行结果
key first_name
value Wang
key last_name
value Aiqiang
key xing
value male
key age
value 24
exercise 3 遍历字典时候会默认遍历所有的键,也可用keys()——返回键值列表 来遍历;同样对“值“调用时候使用函数“values()”
#注意采用“键”可以间接访问“值”
messages={
"ruijun":"8",
"junhui":"9",
}
# item()返回一个键值对列表
for name in messages.keys():
print("name",name)
print("n")
for name in messages:
print("name", name)
#执行结果
name ruijun
name junhui
name ruijun
name junhui
exercise 4 需要对返回键进行排序时用函数sorted()来获得按特定顺序排列的键列表的副本
messages={
"ruijun":"python",
"junhui":"python",
"gaqiang":"verilog",
}
# value()返回“值”列表,set()集合:剔除重复的值
for language in set( sorted( messages.values() ) ):
print("name",language.title())
#执行结果
name Verilog
name Python
Process finished with exit code 0
exercise 5
#创建一个应该会接受调查的人员名单,其中有些人已包含在字典中,而其他人未包含在字典中。
# 遍历这个人员名单,对于已参与调查的人,打印一条消息表示感谢。对于还未参与调查的人,打印一条消息邀请他参与调查。
messages = {
"ruijun":"python",
"junhui":"python",
"gaqiang":"verilog",
}
researchs = {
"huijun":"C",
"xuanxuan":"VHDL",
"ruijun":"python"
}
for research_name in researchs.keys():
if research_name in messages.keys():
print("thanks:",research_name.title() )
else:
print("invite:",research_name.title() )
#执行结果
invite: Huijun
invite: Xuanxuan
thanks: Ruijun
exercise 6 字典中存储列表,每个人喜欢的语言有可能有多种
messages = {
"ruijun":["python"],
"junhui":["python"],
"gaqiangs":["verilog","VHDL",]
}
for name,languages in messages.items():
print(name+" favorite language is:")
if len(languages)!=1:
for language in languages:
print("t",language)
else:
print("t",languages)
#执行结果:
ruijun favorite language is:
['python']
junhui favorite language is:
['python']
gaqiangs favorite language is:
verilog
VHDL
exercise 7 列表中中套用字典
messages = {
"ruijun":"python",
"junhui":"python",
"gaqiangs":["verilog","VHDL"]
}
researchs = {
"huijun":"C",
"xuanxuan":"VHDL",
"ruijuns":"python"
}
together1s=[messages,researchs]
for together1 in together1s:
print(together1)
#执行结果
{'ruijun': 'python', 'junhui': 'python', 'gaqiangs': ['verilog', 'VHDL']}
{'huijun': 'C', 'xuanxuan': 'VHDL', 'ruijuns': 'python'}
-
exercise 8 列表中的元素是字典,遍历列表中元素的元素
friend1={"huijun":"male","hobby":"book"}
friend2={"ruijun":"male","hobby":"film"}
friends=[friend1,friend2]
for friend in friends:
for key,value in friend.items():
print(key+": "+value
)
print("nthat's all!")
#执行结果
huijun: male
hobby: book
ruijun: male
hobby: film
that's all!
exercise 9 字典中的元素是字典(且各个键都不一样,此时使用for循环遍历更方便)
#创建一个名为 cities 的字典,其中将三个城市名用作键;
#对于每座城市,都创建一个字典,并在其中包含该城市所属的国家、人口约数以及一个有关该城市的事实。
#在表示每座城市的字典中,应包含 country、 population 和 fact 等键。
#将每座城市的名字以及有关它们的信息都打印出来。
注:稍加修改即可哦!
cities={
"London":{"population1":"1200","location1":"amercia","size1":"300",},
"Beijing":{"population2":"1500","location2":"UK","size2":"400",},
"Dongjin":{"population3":"2000","location3":"japan","size3":"600"},
}
for city,infor in cities.items():
print(city+"'s basic information:")
for key,value in infor.items():
print("t",key+": "+value)
执行结果
London's basic information:
population1: 1200
location1: amercia
size1: 300
Beijing's basic information:
population2: 1500
location2: UK
size2: 400
Dongjin's basic information:
population3: 2000
location3: japan
size3: 600
Process finished with exit code 0
第 7章 用户的输入和while循环
exercise 1
#知识点:
# input() py终端等待输入一个字符串,获取的字符创需要转换为数字的时候通过int()转换即可
# +=的使用:在name字符串的末尾追加一个字符串
name="Please tell me who you are."
name+="nWhat's your name?
"
name=input(name)
print("hello,"+name)
#执行结果
Please tell me who you are.
What's your name?
waq
hello,waq
Process finished with exit code 0
exercise 2
#用户输入“quit”的时候程序退出,否则打印输入的内容,等待用户下一次输入
prompt="tell me something,and I will repeat it back to you"
prompt+="nEnter 'quit' to end this program
"
message=""
while message!="quit":
message=input(prompt)
if message!="quit":
print("n",message)
#执行结果
tell me something,and I will repeat it back to you
Enter 'quit' to end this program
life
life
tell me something,and I will repeat it back to you
Enter 'quit' to end this program
quit
Process finished with exit code 0
exercise 3 标志的合理利用,提高代码的健壮性
#在要求很多条件都满足才继续运行的程序中,可定义一个变量,用于判断整个程序是否处于活动状态。
#这个变量被称为标志,充当了程序的交通信号灯。你可让程序在标志为True时继续运行,并在任何事件导致标志的值为False时让程序停止运行。
#这样,在while语句中就只需检查一个条件——标志的当前值是否为True,并将所有测试(是否发生了应将标志设置为False的事件)都放在其他地方,从而让程序变得更为整洁。
prompt="tell me something,and I will repeat it back to you"
prompt+="nEnter 'quit' to end this program
"
flag=True
while flag:
message=input(prompt)
if message=="quit":
flag=False
else:
print(message)
print("game over")
#执行结果
tell me something,and I will repeat it back to you
Enter 'quit' to end this program
life
life
tell me something,and I will repeat it back to you
Enter 'quit' to end this program
quit
game over
exercise 4
break用来跳出循环,类似C语言里面的;continue语句也类似,遇到continue时候,其之后的语句不再执行,直接进入下一轮循环
prompt="tell me something,and I will repeat it back to you"
prompt+="nEnter 'quit' to end this program
"
flag=True
while flag:
message=input(prompt)
if message=="quit":
break
else:
print(message)
print("game over")
#执行结果同 exercise3结果
exercise 5
continue用法,遇到continue的时候,其后面的语句不在执行,直接进行下一轮操作。
current_number=0
old=[]
print("1-10 old:n")
while current_number<10:
current_number += 1
if current_number%2==0:
continue
else:
old.append(current_number)
print(old)
#执行结果
1-10 old:
[1, 3, 5, 7, 9]
exercise 6
#有家电影院根据观众的年龄收取不同的票价:不到 3 岁的观众免费;3~12 岁的观众为 10 美元;超过 12 岁的观众为 15 美元。
#请编写一个循环,在其中询问用户的年龄,并指出其票价。
#以另一种方式完成练习 7-4 或练习 7-5,在程序中采取如下所有做法。 在 while 循环中使用条件测试来结束循环。
#使用变量 active 来控制循环结束的时机。使用 break 语句在用户输入'quit'时退出循环。
active=True
while active:
age = input("input age ")
if age == "quit":
#active=False
break
elif int(age) < 3:
print(age+" is "+"free of charge")
elif (int(age) >= 3)and(int(age) < 12):
print(age+" cost:10$")
elif int(age) >= 12:
print(age+" cost:15$")
#测试结果
input age 3
3 cost:10$
input age 10
10 cost:10$
input age 13
13 cost:15$
input age quit
Process finished with exit code 0
exercise 7 转移朋友从一个位置到另外一个位置
friend=["ruijun","huyijun","xiaobing","gaqiang",]
transfer_friend=[]
while friend:
name=friend.pop()
transfer_friend.append(name)
print("输出转移到安全位置的朋友:")
print(transfer_friend)
print("n输出原来位置的朋友:")
print(friend)
#执行结果:
输出转移到安全位置的朋友:
['gaqiang', 'xiaobing', 'huyijun', 'ruijun']
输出原来位置的朋友:
[]
exercise 8
friend=["ruijun","ruijun","huyijun","xiaobing","gaqiang",]
transfer_friend=[]
print("n",friend)
print("ruijun is safe,we can't transfer him: ")
while friend:
name=friend.pop()
if name == "ruijun":
continue
else:
transfer_friend.append(name)
print("输出转移到安全位置的朋友:")
print(transfer_friend)
print("n输出原来位置的朋友:")
print(friend)
#执行结果:
['ruijun', 'ruijun', 'huyijun', 'xiaobing', 'gaqiang']
ruijun is safe,we can't transfer him:
输出转移到安全位置的朋友:
['gaqiang', 'xiaobing', 'huyijun']
输出原来位置的朋友:
[]
Process finished with exit code 0
exercise 9
#编写一个程序,调查用户梦想的度假胜地。
#使用类似于“Ifyou could visit one place in the world, where would you go?”的提示,并编写一个打印调查结果的代码块。
scenic={}
print("Ifyou could visit one place in the world, where would you go?n")
while True:
target_scenic=input("input that you want visit one place in the world: ")
if target_scenic=="quit":
print("ngame over")
break
specific_scenic=input("input basic specific_scenic: ")
scenic[target_scenic]=specific_scenic
for scienc,information in scenic.items():
print(scienc.title()+"'s is "+information.title()+"!" )
#执行结果
input that you want visit one place in the world: beijing
input basic specific_scenic: the great wall
input that you want visit one place in the world: quit
game over
Beijing's is The Great Wall!
Process finished with exit code 0
第8章 函数学习
exercise 1
#target:定义了一个函数make_shirt(),尝试使用不同的调用方式
def make_shirt(size,information="XXl"):
"""make shirt"""
print("size is "+size)
if 170<int(size)<175:
print("this size The corresponding word is: "+information)
elif 175<=int(size)<=180:
print("this size The corresponding word is "+information)
else:
print("this size The corresponding word is "+information)
make_shirt('175')
print("n")
make_shirt(information="XL",size="180")
#执行结果:
size is 175
this size The corresponding word is XXl
size is 180
this size The corresponding word is XL
exercise 2
def get_formatted_name(first_name,last_name,middle_name=""):
if middle_name:
full_name=first_name+" "+middle_name+" "+last_name
else:
full_name=first_name+" "+last_name
return full_name.title()
my_name=get_formatted_name(first_name="wang",middle_name="ai",last_name="qiang")
print(my_name)
print("n")
her_name=get_formatted_name(first_name="xuan",last_name="xuan")
print(her_name)
#执行结果
Wang Ai Qiang
Xuan Xuan
exercise 3
target:函数生成一个人的全名,如果需要补充年龄信息可以通过增加if循环来判断
def get_formatted_name(first_name,last_name,age=""):
name={'first':first_name,'last':last_name}
if age:
name['age']=age
return name
print("n")
her_name=get_formatted_name(first_name="xuan",last_name="xuan",age='25')
print(her_name)
#执行结果
{'first': 'xuan', 'last': 'xuan', 'age': '25'}
exercise 4
#8-7 专辑:编写一个名为 make_album()的函数,它创建一个描述音乐专辑的字典。
#这个函数应接受歌手的名字和专辑名,并返回一个包含这两项信息的字典。使用这个函
#数创建三个表示不同专辑的字典,并打印每个返回的值,以核实字典正确地存储了专辑的信息。
#给函数 make_album()添加一个可选形参,以便能够存储专辑包含的歌曲数。 如果调
#用这个函数时指定了歌曲数,就将这个值添加到表示专辑的字典中。
#调用这个函数,并至少在一次调用中指定专辑包含的歌曲数
#方法一:使用标志位来判断,但是需要在函数体中增加多余逻辑来判断,推荐使用方法2
def make_album(name,album,number=''):
album_information = {"name": name, "album": album}
if (name=="quit")or(album=="quit"):
return False
elif number:
album_information['number']=number
return album_information
else:
return
album_information
# infor=make_album("Bob Dylan","The answer is in the wind",number="10")
active=True
while active:
name=input("input singer's name: ")
if name=="quit":
active=False
album=input("input singer's album: ")
if album=="quit":
active=False
get_album=make_album(name,album,number='6')
print("album information: n")
print(get_album)
#执行结果
input singer's name: quit
input singer's album: www
album information:
False
exercise 5
target:使用方法二来判断
def make_album(name,album,number=''):
album_information = {"name": name, "album": album}
if number:
album_information['number']=number
return album_information
else:
return
album_information
# infor=make_album("Bob Dylan","The answer is in the wind",number="10")
while True:
name=input("input singer's name: ")
if name=="quit":
break
album=input("input singer's album: ")
if album=="quit":
break
get_album=make_album(name,album,number='6')
print("album information: n")
print(get_album)
#执行结果
input singer's name: bob dylan
input singer's album: the answer is in the wind
album information:
{'name': 'bob dylan', 'album': 'the answer is in the wind', 'number': '6'}
input singer's name: quit
Process finished with exit code 0
exercise 6 函数综合练习
target:普通的一段代码实现数据转移 VS 采用模块化思路,将复杂问题简单化,分别在不同的函数模块实现一个小功能,最后通过组织调用函数实现复杂的功能
# 输出需要转移到列表transfer_friends里面的数据
def print_friend(friend,transfer_friends):
while friend:
current_friend=friend.pop()
print("print current_friend:"+current_friend)
transfer_friends.append(current_friend)
# 将已经添加到transfer_friends里面的数据一次性展示出来
print("n展示转移后的新列表数据:")
def transfered_friend(transfer_friends):
for transfer_friend in transfer_friends:
print(transfer_friend)
# 主程序:调用函数实现
# print_frien()负责具体逻辑操作
# transfered_friend()负责显示处理后的新列表数据
friend=["ruijun","ruijun","huyijun","xiaobing","gaqiang"]
transfer_friends=[]
#print_friend(friend[:],transfer_friends)
切片表示法[:]创建列表的副本
print_friend(friend,transfer_friends)
transfered_friend(transfer_friends)
"""
friend=["ruijun","ruijun","huyijun","xiaobing","gaqiang"]
transfer_friends=[]
while friend:
current_friend=friend.pop()
print("print current_friend:"+current_friend)
transfer_friends.append(current_friend)
print("n展示转移后的新列表数据:")
for transfer_friend in transfer_friends:
print("t",transfer_friend)
"""
#执行结果
print current_friend:gaqiang
print current_friend:xiaobing
print current_friend:huyijun
print current_friend:ruijun
print current_friend:ruijun
展示转移后的新列表数据:
gaqiang
xiaobing
huyijun
ruijun
ruijun
Process finished with exit code 0
exercise 7
"""
8-9 魔 术 师 : 创 建 一 个 包 含 魔 术 师 名 字 的 列 表 , 并 将 其 传 递 给 一 个 名 为
show_magicians()的函数,这个函数打印列表中每个魔术师的名字。
8-10 了不起的魔术师:在你为完成练习 8-9 而编写的程序中,编写一个名为
make_great()的函数,对魔术师列表进行修改,在每个魔术师的名字中都加入字样“the
Great”。调用函数 show_magicians(),确认魔术师列表确实变了。
8-11 不变的魔术师:修改你为完成练习 8-10 而编写的程序,在调用函数
make_great()时,向它传递魔术师列表的副本。由于不想修改原始列表,请返回修改后
的列表,并将其存储到另一个列表中。分别使用这两个列表来调用 show_magicians(),
确认一个列表包含的是原来的魔术师名字,而另一个列表包含的是添加了字样“the
Great”的魔术师名字。
"""
def show_magicians(magicians):
for magician in magicians:
print("magician name:
"+magician.title())
def make_great(great_magicians,magicians):
while magicians:
print_magician=magicians.pop()
great_magicians.append("The Great "+print_magician+"!")
magicians=["ruijun", "zhigang", "huijun"]
great_magicians =[]
make_great(great_magicians, magicians[:])
show_magicians(great_magicians)
print("t",magicians)
#执行结果
magician name:
The Great Huijun!
magician name:
The Great Zhigang!
magician name:
The Great Ruijun!
['ruijun', 'zhigang', 'huijun']
exercise 8 接收任意数量的实参用星元组即可
# def make_pizza(*toppings):
# 形参名*toppings中的星号让Python创建一个名为toppings的空元组,并将收到的所有值都封装到这个元组中。
# 如果要让函数接受不同类型的实参,必须在函数定义中将接纳任意数量实参的形参放在最后。
# Python先匹配位置实参和关键字实参,再将余下的实参都收集到最后一个形参中。
# 可将函数编写成能够接受任意数量的键—值对——调用语句提供了多少就接受多少。
# 形参**user_info中的两个星号让Python创建一个名为user_info的空字典,并将收到的所
# 有名称—值对都封装到这个字典中。在这个函数中,可以像访问其他字典那样访问user_info中的名称—值对
# def build_profile(first, last, **user_info):
exercise 9
使用as分别给模块(module指的是被封装起来的函数)和function(指的是被调用模块内的函数名称)分别取别名
给module取别名:import module_name as mn
取别名后函数的调用方式和直接调用模块一样
module_name.mn(“actual parameter”,"...",......)
给function取别名:from module_name import function_name as fn
给函数取别名后的调用方式直接是
fn(“actual parameter”,"...",......)
导入模块中的所有函数:from module_name import *
注解:然而,使用并非自己编写的大型模块时,最好不要采用这种导入方法:如果模块中有函数的名称与你的项目中使用的名称相同,可能导致意想不到的结果: Python可能遇到多个名称相同的函数或变量,进而覆盖函数,
第9章 类
exercise 1 1.类的定义及其实例化:
class student(object):
# 定义构造方法
def __init__(self, n, a):
# __init__() 是类的初始化方法;它在类的实例化操作后 会自动调用,不需要手动调用;
# 设置属性
self.name = n
self.age = a
# 定义普通方法
def speak(self):
print("%s 说:我今年%s岁" % (self.name, self.age))
# 类student 实例化一个对象john
john = student("约翰", 19)
# 调用类中的 speak()方法
john.speak()
# >>>约翰 说:我今年19岁
# 在python中使用__开头 并以__结尾的方法,称之为魔法方法;
# __init__(self) 是类的初始化方法,也称构造方法,是一种特殊的魔法方法。
# __init__(self)在实例化后,会自动调用,而不用手动调用,所以一般把属性设置在_init__()里。
# 常用到的魔法方法还有:__str__(self) 、 __del__(self)等。
exercise 2
"""
创建一个名为 User 的类,其中包含属性 first_name 和 last_name,还有
用户简介通常会存储的其他几个属性。在类 User 中定义一个名为 describe_user()的方
法,它打印用户信息摘要;再定义一个名为 greet_user()的方法,它向用户发出个性化
的问候。
创建多个表示不同用户的实例,并对每个实例都调用上述两个方法。
"""
class User(object):
def __init__(self,first_name,last_name):
self.first_name=first_name
self.last_name=last_name
def describe_user(self):
full_name=self.first_name.title()+" "+self.last_name.title()
print("输出顾客的全名n"+full_name)
def greet(self):
print("hello,welcom to Beijing")
my_friend = User("hui","jun")
my_friend.describe_user()
my_friend.greet()
my_friend = User("bo","xuan")
my_friend.describe_user()
my_friend.greet()
# 执行结果
输出顾客的全名
Hui Jun
hello,welcom to Beijing
输出顾客的全名
Bo Xuan
hello,welcom to Beijing
Process finished with exit code 0
exercise 3 继承
class Car():
def __init__(self, make, model, year):
"""初始化描述汽车的属性"""
self.make = make
self.model = model
self.year = year
self.odometer_reading = 0
def get_descriptive_name(self):
"""返回整洁的描述性信息"""
long_name = str(self.year) + ' ' + self.make + ' ' + self.model
return long_name.title()
def read_odometer(self):
"""打印一条指出汽车里程的消息"""
print("This car has " + str(self.odometer_reading) + " miles on it.")
class ElectricCar(Car):
"""Represent aspects of a car, specific to electric vehicles."""
def __init__(self, make, model, year):
"""
电动汽车的独特之处
初始化父类的属性,再初始化电动汽车特有的属性
"""
super().__init__(make, model, year)
self.battery_size = 70
def describe_battery(self):
"""打印一条描述电瓶容量的消息"""
print("This car has a " + str(self.battery_size) + "-kWh battery.")
my_tesla = ElectricCar('tesla', 'model s', 2016)
print(my_tesla.get_descriptive_name())
my_tesla.describe_battery()
# 执行结果:
2016 Tesla Model S
This car has a 70-kWh battery.
Process finished with exit code 0
exercise 4
# 将实例用作属性使用代码模拟实物时,你可能会发现自己给类添加的细节越来越多:属性和方法清单以及文件都越来越长。
# 在这种情况下,可能需要将类的一部分作为一个独立的类提取出来。你可以将大型类拆分成多个协同工作的小类。
class Car():
def __init__(self, make, model, year):
"""初始化描述汽车的属性"""
self.make = make
self.model = model
self.year = year
self.odometer_reading = 0
def get_descriptive_name(self):
"""返回整洁的描述性信息"""
long_name = str(self.year) + ' ' + self.make + ' ' + self.model
return long_name.title()
def read_odometer(self):
"""打印一条指出汽车里程的消息"""
print("This car has " + str(self.odometer_reading) + " miles on it.")
class Battery():
def __init__(self, battery_size=70):
"""初始化电瓶车的属性"""
self.battery_size = battery_size
def describe_battery(self):
"""打印一条电瓶车容量的信息"""
print("This car has a " + str(self.battery_size) + "-kWh battery.")
class ElectricCar(Car):
"""电瓶车的独特之处"""
def __init__(self, make, model, year):
"""
电动汽车的独特之处
初始化父类的属性,再初始化电动汽车特有的属性
"""
super().__init__(make, model, year)
self.battery = Battery()
my_tesla = ElectricCar('tesla', 'model s', 2016)
print(my_tesla.get_descriptive_name())
my_tesla.battery.describe_battery()
#执行结果:
2016 Tesla Model S
This car has a 70-kWh battery.
Process finished with exit code 0
#####################################################################################################
Try to run this command from the system terminal.
Make sure that you use the correct version of 'pip' installed for your Python interpreter located at
'D:DesktoplpythonProjectvenvScriptspython.exe'.
总结
待续最后
以上就是忧虑寒风为你收集整理的python基础主要内容第2章 py开始:注释,变量,常量,大小写转换,删除空格,创建文件,数据类型的转换str()第3章 访问列表 del() pop() insert() sort() sorted() reverse()第4章 操作列表 注:缩进代码,这点不同于C、C++第5章 if语句第 6章 字典第 7章 用户的输入和while循环第8章 函数学习第9章 类总结的全部内容,希望文章能够帮你解决python基础主要内容第2章 py开始:注释,变量,常量,大小写转换,删除空格,创建文件,数据类型的转换str()第3章 访问列表 del() pop() insert() sort() sorted() reverse()第4章 操作列表 注:缩进代码,这点不同于C、C++第5章 if语句第 6章 字典第 7章 用户的输入和while循环第8章 函数学习第9章 类总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复