13、人工智能之Python基础_编程练习题(if while for)必做第一题:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。第二题:for 创建一个名为favorite_places的字典。 在这个字典中,将三个人的名字用作键;对于其中的每个人,都存储他喜欢的1个地方. 朋友指出一个名字(input)。遍历这个字典,并将输入名字及其喜欢的地方打印出来 还可以继续输入名字 如果输入q则退出#创建字典favorite_places = {'张三':['上海','北京','广州'],'李四':['九寨沟','张家界','鼓浪屿'],'东方耀':['长沙', '上海', '深圳']}第三题:99乘法表 用for循环打印99乘法表 用while 1x1 =1 1x2 = 2 2x2 = 4第四题:1-100的和 1+2+3+4+...+100 = ? range(1,101)第五题:从键盘输入一个字符串,将小写字母全部转换成大写字母, 将字符串以列表的形式输出(如果字符串包含整数,转为整型)?第六题:随机输入8位以内的的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。第七题:一球从n米(自己输入)高度自由落下,每次落地后反跳回原高度的一半; 再落下,求它在第10次落地时,共经过多少米?第八题:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。第九题:names = ['Tom','Billy','Jefferson','Andrew','Wesley','Steven','Joe','Alice','Jill','Ana','Wendy','Jennifer','Sherry','Eva']找出上述名字中长度大于4的名字,组成列表打印出来.过滤掉长度大于5的字符串列表,并将剩下的转换成大写字母.第十题:求M,N中矩阵对应元素的和,元素的乘积m = [[1,2,3], m[0][0] + n[0][0] [4,5,6], [7,8,9]]n = [[2,2,2], [3,3,3], [4,4,4]]第十一题:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。第十二题:打印菱形 * 第十三题:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。第十四题:求一个3*3矩阵对角线元素之和 m [0][0]1 m [0][2-0=2] 3 m [1][1]5 m [1][2-1=1] 5 m [2][2]9 m [2][2-2=0] 7 第十五题:题目:有四个数字:1、2、3、4,能组成多少个互不 相同且无重复数字的三位数?各是多少? 123 213 143 234 431 程序分析:可填在百位、十位、个位的数字都是1、2、3、4。 组成所有的排列后再去 掉不满足条件的排列。(用列表推导式)第十六题:将列表用for循环添加到一个字典中names = ['Tom','Billy','Jefferson','Andrew','Wesley','Steven','Joe','Alice','Sherry','Eva']第十七题:设一组账号和密码不少于两个 通过输入账号和密码,如果输入正确则显示登录成功 若账号或者密码错误则显示登录失败,最多可以输入三次users ={'张三':'123456','李四':'654321'}第十八题:求阶乘 用while 和for 分别实现 例: 2的阶乘 2*1 3的阶乘位 3*2*1 4的阶乘位4*3*2*1 求 5 的阶乘第十九题:冒泡排序 从小到大排序菱形.png (1.25 KB, 下载次数: 0)菱形.png分享到: QQ好友和群QQ好友和群收藏收藏回复 举报东方耀246主题 318帖子 2175积分管理员Rank: 10Rank: 10Rank: 10积分2175发消息 沙发 楼主| 发表于 2018-1-9 21:04:43 | 只看该作者列表:特点就是:可重复,类型可不同。类型不同也是跟数组最本质的区别了,python里的列表用"[]"表示。元组和列表在结构上没有什么区别,唯一的差异在于元组是只读的,不能修改。元组用"()"表示,如:集合就是我们数学学的集合,没有什么特殊的定义。集合最好的应用是去重。集合没有特殊的表示方法,而是通过一个set函数转换成集合,如:字典最外面用大括号,每一组用冒号连起来,然后各组用逗号隔开。字典最大的价值是查询,通过键,查找值。回复 举报东方耀246主题 318帖子 2175积分管理员Rank: 10Rank: 10Rank: 10积分2175发消息 板凳 楼主| 发表于 2018-1-9 21:06:27 | 只看该作者赋值(=),就是创建了对象的一个新的引用,修改其中任意一个变量都会影响到另一个。 浅拷贝:创建一个新的对象,但它包含的是对原始对象中包含项的引用(如果用引用的方式修改其中一个对象,另外一个也会修改改变){1,完全切片方法;2,工厂函数,如list();3,copy模块的copy()函数} 深拷贝:创建一个新的对象,并且递归的复制它所包含的对象(修改其中一个,另外一个不会改变){copy模块的deep.deepcopy()函数}