前文:
很多自学python的编程小伙伴儿,都不知道自己的基础到底学的怎么样了,今天给大家出了一些简单的新手普遍的一些知识点案例从基础的变量字符串、函数、字典、if。。。。。
需要动手自己做编程题目,敲代码的哈!!提升自己,加油!!
1.写一个小程序。
变量和简单数据类型
# 2-1 简单消息: 将一条消息存储到变量中, 再将其打印出来。 var = 'hello_world!' print(var) # 2-2 多条简单消息: 将一条消息存储到变量中,将其打印出来; # 再将变量的值修改为一条新消息, 并将其打印出来。 var = 'hello_world!' print(var) var = 'hello_python!' print(var) # 2-3 个性化消息: 将用户的姓名存到一个变量中, 并向该用户显示一条消息。 # 显示的消息应非常简单, 如“Hello Eric, would you like to learn some Python today?”。 user_name = 'Eric' print('Hello '+ user_name +', would you like to learn some Python today?') # 2-4 调整名字的大小写: 将一个人名存储到一个变量中, 再以小写、 大写和首字母大写的方式显示这个人名。 user_name = 'Eric' print(user_name.lower()) print(user_name.upper()) print(user_name.title()) # 2-5 名言: 找一句你钦佩的名人说的名言, 将这个名人的姓名和他的名言打印出来。 输出应类似于下面这样(包括引号) : Albert Einstein once said, “A person who never made a mistake never tried anything new.” print('Albert Einsteinonce said,"A person who never made a mistake never tried anything new."') # 2-6 名言2: 重复练习2-5, 但将名人的姓名存储在变量famous_person 中, 再创建要显示的消息, # 并将其存储在变量message 中, 然后打印这条消息。 famous_person = 'Albert Einstein' message = 'A person who never made a mistake never tried anything new.' print(famous_person + 'once said,"' + message + '"') # 2-7 剔除人名中的空白: 存储一个人名, 并在其开头和末尾都包含一些空白字符。 # 务必至少使用字符组合"\t" 和"\n" 各一次。打印这个人名, 以显示其开头和末尾的空白。 # 然后, 分别使用剔除函数lstrip() 、 rstrip() 和strip() 对人名进行处理, 并将结果打印出来。 user_name = ' Eric ' print('\t'+ user_name.lstrip() + '\n\n') print('\t'+ user_name.rstrip() + '\n\n') print('\t'+ user_name.strip() + '\n\n') # 2-8 数字8: 编写4个表达式, 它们分别使用加法、 减法、 乘法和除法运算, 但结果都是数字8。 # 为使用print 语句来显示结果, 务必将这些表达式用括号括起来, 也就是说, 你应该编写4行类似于下面的代码:print(5 + 3) print(5 + 3) print(10 - 2) print(2 * 4) print(int(16 / 2)) # 2-9 最喜欢的数字: 将你最喜欢的数字存储在一个变量中, 再使用这个变量创建一条消息, # 指出你最喜欢的数字, 然后将这条消息打印出来。 fav_nub = 0 print('我最喜欢的数字是:' + str(fav_nub) +'!') # 2-10 添加注释: 选择你编写的两个程序, 在每个程序中都至少添加一条注释。 # 如果程序太简单, 实在没有什么需要说明的, 就在程序文件开头加上你的姓名和当前日期, 再用一句话阐述程序的功能。 var = 'hello_world!' 这句是将hello_world!字符串赋值给变量var print(var) 将var变量打印出来 # 2-11 Python之禅: 在Python终端会话中执行命令import this , 并粗略地浏览一下其他的指导原则。 ①win+r 打开运行窗口 ②输入cmd打开命令提示符 ③输入python进入cpython ④输入import this Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you're Dutch. Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let's do more of those!
list 列表简介
# 3-1 姓名: 将一些朋友的姓名存储在一个列表中, 并将其命名为names 。 # 依次访问该列表中的每个元素, 从而将每个朋友的姓名都打印出来。 names = ['张三','李四','王五'] print(names[0]) print(names[1]) print(names[2]) # 3-2 问候语: 继续使用练习3-1中的列表, 但不打印每个朋友的姓名, 而为每人打印一条消息。 # 每条消息都包含相同的问候语, 但抬头为相应朋友的姓名。 names = ['张三','李四','王五'] print(names[0] + ',你好!') print(names[1] + ',你好!') print(names[2] + ',你好!') # 3-3 自己的列表: 想想你喜欢的通勤方式, 如骑摩托车或开汽车, 并创建一个包含多种通勤方式的列表。 根 # 据该列表打印一系列有关这些通勤方式的宣言, 如“I wouldlike to own a Honda motorcycle”。 travel_mode = ['小汽车','摩托车','自行车'] print('我想拥有一辆:' + travel_mode[0]) print('我想拥有一辆:' + travel_mode[1]) print('我想拥有一辆:' + travel_mode[2]) # 3-4 嘉宾名单 : 如果你可以邀请任何人一起共进晚餐(无论是在世的还是故去的),你会邀请哪些人? # 请创建一个列表, 其中包含至少3个你想邀请的人; 然后, 使用这个列表打印消息, 邀请这些人来与你共进晚餐。 inv_list = ['马云','马化腾','李彦宏'] for inv_name in inv_list: print('尊敬的:' + inv_name + '(先生/女士),诚挚的邀请您参加今晚的宴会!') # 3-5 修改嘉宾名单 : 你刚得知有位嘉宾无法赴约, 因此需要另外邀请一位嘉宾。 # 以完成练习3-4时编写的程序为基础, 在程序末尾添加一条print 语句, 指出哪位嘉宾无法赴约。 # 修改嘉宾名单, 将无法赴约的嘉宾的姓名替换为新邀请的嘉宾的姓名。 # 再次打印一系列消息, 向名单中的每位嘉宾发出邀请。 inv_list = ['马云','马化腾','李彦宏'] print(inv_list[0] + '因故无法赴宴!') inv_list[0] = 'jack_Ma' for inv_name in inv_list: print('尊敬的:' + inv_name + '(先生/女士),诚挚的邀请您参加今晚的宴会!') #这题出的真有毛病,马云马化腾要是都缺席了,李彦宏就要收三次短信,我要是李彦宏第一个开除你…… # 3-6 添加嘉宾 : 你刚找到了一个更大的餐桌, 可容纳更多的嘉宾。 请想想你还想邀请哪三位嘉宾。 # 以完成练习3-4或练习3-5时编写的程序为基础, 在程序末尾添加一条print 语句, 指出你找到了一个更大的餐桌。 # 使用insert() 将一位新嘉宾添加到名单开头。 # 使用insert() 将另一位新嘉宾添加到名单中间。 # 使用append() 将最后一位新嘉宾添加到名单末尾。 # 打印一系列消息, 向名单中的每位嘉宾发出邀请。 inv_list = ['马云','马化腾','李彦宏'] inv_list.insert(0,'雷军') inv_list.insert(2,'柳传志') inv_list.append('赵本山') for inv_name in inv_list: print('尊敬的:' + inv_name + '(先生/女士),诚挚的邀请您参加今晚的宴会!') # 3-7 缩减名单 : 你刚得知新购买的餐桌无法及时送达, 因此只能邀请两位嘉宾。 # 以完成练习3-6时编写的程序为基础, 在程序末尾添加一行代码, 打印一条你只能邀请两位嘉宾共进晚餐的消息。 # 使用pop() 不断地删除名单中的嘉宾, 直到只有两位嘉宾为止。 每次从名单中弹出一位嘉宾时, 都打印一条消息, # 让该嘉宾知悉你很抱歉, 无法邀请他来共进晚餐。 # 对于余下的两位嘉宾中的每一位, 都打印一条消息, 指出他依然在受邀人之列。 # 使用del 将最后两位嘉宾从名单中删除, 让名单变成空的。 打印该名单, 核实程序结束时名单确实是空的。 print('--------------------') inv_list = ['马云','马化腾','李彦宏'] inv_list.insert(0,'雷军') inv_list.insert(2,'柳传志') inv_list.append('赵本山') for inv_name in inv_list: print('尊敬的:' + inv_name + '(先生/女士),诚挚的邀请您参加今晚的宴会!') print('抱歉,只能邀请两位嘉宾共进晚餐') n = int(len(inv_list)) while n > 2: last_name = inv_list.pop() print(last_name + ',别来了') n = n-1 for inv_name in inv_list: print(inv_name + '接着来吧!混蛋') #急着下班,这样写有点乱,建议加个中间list_temp # 3-8 放眼世界 : 想出至少5个你渴望去旅游的地方。 # 将这些地方存储在一个列表中, 并确保其中的元素不是按字母顺序排列的。91 # 按原始排列顺序打印该列表。 不要考虑输出是否整洁的问题, 只管打印原始Python列表。92 # 使用sorted() 按字母顺序打印这个列表, 同时不要修改它。93 # 再次打印该列表, 核实排列顺序未变。94 # 使用sorted() 按与字母顺序相反的顺序打印这个列表, 同时不要修改它。9596 # 再次打印该列表, 核实排列顺序未变。97 # 使用reverse() 修改列表元素的排列顺序。 打印该列表, 核实排列顺序确实变了。9899 # 使用reverse() 再次修改列表元素的排列顺序。 打印该列表, 核实已恢复到原来的排列顺序。100101 # 使用sort() 修改该列表, 使其元素按字母顺序排列。 打印该列表, 核实排列顺序确实变了。 # 使用sort() 修改该列表, 使其元素按与字母顺序相反的顺序排列。 打印该列表, 核实排列顺序确实变了。 traver_place = ['BeiJing','NanJing','XiAn','LuoYang','GuangZhou'] print(traver_place) print(sorted(traver_place)) print(traver_place) traver_place.reverse() print(sorted(traver_place)) print(traver_place) traver_place.reverse() print(traver_place) traver_place.reverse() print(traver_place) traver_place.sort() print(traver_place) traver_place.sort(reverse=True) print(traver_place) #什么神经病题目,可能会有遗漏,但是不会报错 # 3-9 晚餐嘉宾 : 在完成练习3-4~练习3-7时编写的程序之一中, 使用len() 打印一条消息, 指出你邀请了多少位嘉宾来与你共进晚餐。 inv_list = ['马云','马化腾','李彦宏'] print('共邀请了:' + str(len(inv_list)) + '位宾客!') # 3-10 尝试使用各个函数 : 想想可存储到列表中的东西, 如山岳、 河流、 国家、 城市、 语言或你喜欢的任何东西。 # 编写一个程序, 在其中创建一个包含这些元素的列 表, 然后, 对于本章介绍的每个函数, 都至少使用一次来处理这个列表。 #略……
list 列表操作
# 4-1 比萨 : 想出至少三种你喜欢的比萨, 将其名称存储在一个列表中, # 再使用for 循环将每种比萨的名称都打印出来。 # 修改这个for 循环, 使其打印包含比萨名称的句子, 而不仅仅是比萨的名称。 # 对于每种比萨, 都显示一行输出, 如“I like pepperoni pizza”。 # 在程序末尾添加一行代码, 它不在for 循环中, 指出你有多喜欢比萨。 # 输出应包含针对每种比萨的消息, 还有一个总结性句子, 如“I really love pizza!”。 pizzas = ['pizzaA','pizzaB','pizzaC'] for temp in pizzas: print(temp) for temp2 in pizzas: print('I like:' + temp2 +'!') print('老喜欢吃披萨了,比如:' + str(pizzas) + ',I really love pizza!' ) # 4-2 动物 : 想出至少三种有共同特征的动物, 将这些动物的名称存储在一个列表中, 再使用for 循环将每种动物的名称都打印出来。 # 修改这个程序, 使其针对每种动物都打印一个句子, 如“A dog would make a great pet”。 # 在程序末尾添加一行代码, 指出这些动物的共同之处, 如打印诸如“Any of these animals would make a great pet!”这样的句子。 animals = ['dog','cat','bird'] for temp in animals: print(temp) print('A '+ animals[0] + ' would make a great pet1') print('A '+ animals[1] + ' would make a great pet2') print('A '+ animals[2] + ' would make a great pet3') print('Any of these animals would make a great pet') # 4-3 数到20 : 使用一个for 循环打印数字1~20(含) 。 temp = list(range(1,21)) for t in temp: print(t) # 4-4 一百万 : 创建一个列表, 其中包含数字1~1 000 000, 再使用一个for 循环将这些数字打印出来 # (如果输出的时间太长, 按Ctrl + C停止输出, 或关闭输出窗口) 。 # temp = list(range(1,1000001)) # for t in temp: # print(t) # 4-5 计算1~1 000 000的总和 : 创建一个列表, 其中包含数字1~1 000 000, 再使用min() 和max() 核实该列表确实是从1开始, # 到1 000 000结束的。 另外, 对这个列表调用函数sum() , 看看Python将一百万个数字相加需要多长时间。 temp = list(range(1,1000001)) print(min(temp)) print(max(temp)) print(sum(temp)) # 4-6 奇数 : 通过给函数range() 指定第三个参数来创建一个列表, 其中包含1~20的奇数; 再使用一个for 循环将这些数字都打印出来。 temp = list(range(1,21,2)) for t in temp: print(t) # 4-7 3的倍数 : 创建一个列表, 其中包含3~30内能被3整除的数字; 再使用一个for 循环将这个列表中的数字都打印出来。 temp = list(range(3,31)) temp2 = [] for t in temp: if t % 3 == 0: temp2.append(t) print(temp2) # 4-8 立方 : 将同一个数字乘三次称为立方。 例如, 在Python中, 2的立方用2**3 表示。 请创建一个列表, 其中包含前10个整数(即1~10) # 的立方, 再使用一个for 循环将这些立方数都打印出来。 temp = list(range(1,11,1)) temp2 = [] for t in temp: t = t ** 2 temp2.append(t) print(temp2) #4-8方法2 for value in range(3,31,3): print(value) # 4-9 立方解析 : 使用列表解析生成一个列表, 其中包含前10个整数的立方。 lists = [value**3 for value in range(1,11)] print(lists) # 4-10 切片 : 选择你在本章编写的一个程序, 在末尾添加几行代码, 以完成如下任务。 # 打印消息“The first three items in the list are:”, 再使用切片来打印列表的前三个元素。 # 打印消息“Three items fromthe middle of the list are:”, 再使用切片来打印列表中间的三个元素。 # 打印消息“The last three items in the list are:”, 再使用切片来打印列表末尾的三个元素。 lists = ['1','2','3','4','5','6','7'] print('The first three items in the list are:') temp1 = lists[:3] for t1 in temp1: print(t1) print('Three items fromthe middle of the list are:' ) temp2 = lists[2:5] for t2 in temp2: print(t2) print('Three items fromthe middle of the list are:') temp3 = lists[-3:] for t3 in temp3: print(t3) # 4-11 你的比萨和我的比萨 : 在你为完成练习4-1而编写的程序中, 创建比萨列表的副本, 并将其存储到变量friend_pizzas 中, # 再完成如下任务。在原来的比萨列表中添加一种比萨。在列表friend_pizzas 中添加另一种比萨。 # 核实你有两个不同的列表。 为此, 打印消息“My favorite pizzas are:”, 再使用一个for 循环来打印第一个列表; # 打印消息“My friend's favorite pizzas are:”, 再使用一个for 循环来打印第二个列表。 核实新增的比萨被添加到了正确的列表中。 my_pizzas = ['pizzaA','pizzaB','pizzaC'] friend_pizzas = my_pizzas[:] my_pizzas.append('my_pizzaD') friend_pizzas.append('friend_pizzaD') print('My favorite pizzas are: ') for temp in my_pizzas: print(temp) print('My friend\'s favorite pizzas are: ') for temp in friend_pizzas: print(temp) # 4-12 使用多个循环 : 在本节中, 为节省篇幅, 程序foods.py的每个版本都没有使用for 循环来打印列表。 请选择一个版本的foods.py, # 在其中编写两个for 循环, 将各个食品列表都打印出来。 my_foods = ['pizza', 'falafel', 'carrot cake'] for t in my_foods: print(t) # 4-13 自助餐 : 有一家自助式餐馆, 只提供五种简单的食品。 请想出五种简单的食品, 并将其存储在一个元组中。 # 使用一个for 循环将该餐馆提供的五种食品都打印出来。 # 尝试修改其中的一个元素, 核实Python确实会拒绝你这样做。 # 餐馆调整了菜单, 替换了它提供的其中两种食品。 请编写一个这样的代码块: 给元组变量赋值, # 并使用一个for 循环将新元组的每个元素都打印出来。 food = ('冰淇淋','苹果','牛肉','羊肉','火锅') for f in food: print(f) food[0] = '1' food = ('1','2','牛肉','羊肉','火锅') for f in food: print(f)
if语句
# 5-1 条件测试 : 编写一系列条件测试; 将每个测试以及你对其结果的预测和实际结果都打印出来。 你编写的代码应类似于下面这样: # car = 'subaru' # print("Is car == 'subaru'? I predict True.") # print(car == 'subaru') # print("\nIs car == 'audi'? I predict False.") # print(car == 'audi') # 详细研究实际结果, 直到你明白了它为何为True 或False 。 # 创建至少10个测试, 且其中结果分别为True 和False 的测试都至少有5个。 car = 'bmw' cars = ['bmw','audi'] #T print(car == 'bmw') #F print(car != 'bmw') #T print(car == car) #F print(car == car.title()) #T print(car == 'bmw' or car == 'audi') #F print(car == 'bmw' and car == 'audi') #T print(int(len(car)) == int(len('bmw'))) #F print(int(len(car)) == int(len('audi'))) #T print('bmw' in cars) #F print('audi' not in cars)
字典
# 6-1 人 : 使用一个字典来存储一个熟人的信息, 包括名、 姓、 年龄和居住的城市。 # 该字典应包含键first_name 、 last_name 、 age 和city 。 将存储在该字典中的每项信息都打印出来。 mayun = {'first_name':'Ma','last_name':'Yun','age':'54','city':'HangZhou'} for key,value in mayun.items(): print('key:' + key) print('value:' + value) # 6-2 喜欢的数字 : 使用一个字典来存储一些人喜欢的数字。 请想出5个人的名字, # 并将这些名字用作字典中的键; 想出每个人喜欢的一个数字, 并将这些数字作为值存 # 储在字典中。 打印每个人的名字和喜欢的数字。 为让这个程序更有趣, 通过询问朋友确保数据是真实的。 dics = {'jack':'1','john':'2','kaiven':'3','popo':'4','lili':'5'} for k,v in dics.items(): print(k + '最喜欢的数字是: ' + v) # 6-3 词汇表 : Python字典可用于模拟现实生活中的字典, 但为避免混淆, 我们将后者称为词汇表。 # 想出你在前面学过的5个编程词汇, 将它们用作词汇表中的键, 并将它们的含义作为值存储在词汇表中。 # 以整洁的方式打印每个词汇及其含义。 为此, 你可以先打印词汇, 在它后面加上一个冒号, 再打印词汇的含义; # 也可在一行打印词汇, 再使用换行符(\n ) 插入一个空行, 然后在下一行以缩进的方式打印词汇的含义。 #我真是良心up主啊,看到了6-4,,又把6-3复杂的写了一遍……………… dics = {'list':'列表','var':'变量','int':'整型','boolean':'布尔','str':'字符串'} print('dics[\'list\']'+':' + dics['list']) print('dics[\'var\']'+':' + dics['var']) print('dics[\'int\']'+':' + dics['int']) print('dics[\'boolean\']'+':' + dics['boolean']) print('dics[\'str\']'+':' + dics['str']) # 6-4 词汇表2 : 既然你知道了如何遍历字典, 现在请整理你为完成练习6-3而编写的代码, # 将其中的一系列print 语句替换为一个遍历字典中的键和值的循环。 确定该循环正确无误后, # 再在词汇表中添加5个Python术语。 当你再次运行这个程序时, 这些新术语及其含义将自动包含在输出中。 dics = {'list':'列表','var':'变量','int':'整型','boolean':'布尔','str':'字符串'} for k,v in dics.items(): print(k + ':' + v + '\n') # 6-5 河流 : 创建一个字典, 在其中存储三条大河流及其流经的国家。 其中一个键—值对可能是'nile': 'egypt' 。 # 使用循环为每条河流打印一条消息, 如“The Nile runs through Egypt.”。 # 使用循环将该字典中每条河流的名字都打印出来。 # 使用循环将该字典包含的每个国家的名字都打印出来。 rivers = {'nile':'egypt','huanghe':'china','changjiang':'china'} for k , v in rivers.items(): print('The ' + k + ' runs through ' + v + ' .') for k in rivers.keys(): print(k) for v in rivers.values(): print(v) # 6-6 调查 : 在6.3.1节编写的程序favorite_languages.py中执行以下操作。 # 创建一个应该会接受调查的人员名单, 其中有些人已包含在字典中, 而其他人未包含在字典中。 # 遍历这个人员名单, 对于已参与调查的人, 打印一条消息表示感谢。 对于还未参与调查的人, 打印一条消息邀请他参与调查。 favorite_languages = { 'amada':'C', 'jacky':'java', 'frank':'c++', 'polly':'php', 'maily':'.net' } lists = ['amada','jacky','mayun','admin'] temp = [] for k in favorite_languages.keys(): temp.append(k) print(temp) for s in lists: if s in temp: print('1') else: print ('2') # 6-7 人 : 在为完成练习6-1而编写的程序中, 再创建两个表示人的字典, 然后将这三个字典都存储在一个名为people 的列表中。 # 遍历这个列表, 将其中每个人的所有信息都打印出来。 mayun0 = {'first_name':'Ma0','last_name':'Yun0','age':'540','city':'HangZhou0'} mayun1 = {'first_name':'Ma1','last_name':'Yun1','age':'541','city':'HangZhou1'} mayun2 = {'first_name':'Ma2','last_name':'Yun','age':'542','city':'HangZhou2'} people = [mayun0,mayun1,mayun2] # print(people) for i in people[:]: print(i) # 6-8 宠物 : 创建多个字典, 对于每个字典, 都使用一个宠物的名称来给它命名; 在每个字典中, 包含宠物的类型及其主人的名字。 # 将这些字典存储在一个名为pets的列表中, 再遍历该列表, 并将宠物的所有信息都打印出来。 dog ={'name':'dog1','age':'3'} cat ={'name':'cat1','age':'4'} bird ={'name':'bird1','age':'1'} pets = [dog,cat,bird] for p in pets: print(p) # 6-9 喜欢的地方 : 创建一个名为favorite_places 的字典。 在这个字典中, 将三个人的名字用作键; 对于其中的每个人, # 都存储他喜欢的1~3个地方。 为让这个练习更有趣些, 可让一些朋友指出他们喜欢的几个地方。 遍历这个字典, # 并将其中每个人的名字及其喜欢的地方打印出来。 favorite_places = {'jack':'beijing','paul':'shanghai','lili':'hangzhou'} for fp in favorite_places.items(): print(fp) # 6-10 喜欢的数字 : 修改为完成练习6-2而编写的程序, 让每个人都可以有多个喜欢的数字, 然后将每个人的名字及其喜欢的数字打印出来。 dics = {'jack':['1','2'],'john':['3','4']} for k,v in dics.items(): print(k + '最喜欢的数字是: ' ) for v1 in v: print(v1) # 6-11 城市 : 创建一个名为cities 的字典, 其中将三个城市名用作键; 对于每座城市, 都创建一个字典, # 并在其中包含该城市所属的国家、 人口约数以及一个有关该城市的事实。 在表示每座城市的字典中, # 应包含country 、 population 和fact 等键。 将每座城市的名字以及有关它们的信息都打印出来。 cities = {'beijing':{'country':'china','population':'100','fact':'超级堵'},'guangzhou':{'country':'china','population':'300','fact':'超级堵2'},'shanghai':{'country':'china','population':'200','fact':'超级堵1'}} for k,v in cities.items(): print('城市:'+k+ '的信息: ') for k1,v1 in v.items(): print(k1,v1) # 略………………
结尾
本章题目就分享到字典,后续文章题目会持续更新。
需要练习的小伙伴儿点赞、关注