From:《python编程从入门到实践》
持续更新中...
都在代码里了
第一到六章:
1 """ 2 Author:CruelKing 3 Time:7/27/2019/morning 4 Name:py基本语法练习 5 6 """ 7 8 def main(): 9 message = 'hello world' 10 print(message) 11 print(message.title()) # 通过title()函数将输出的每个单词的第一个字母改为大写形式 12 print(message.upper()) # 通过upper()函数将输出的所有字符以大写的形式输出 13 print(message.lower()) # 通过lower()函数将输出的所有字符以小写的形式输出 14 first_name = 'bian' 15 last_name = 'junting' 16 full_name = last_name + ' ' + first_name # python中通过 '+'将两个字符串或者字符拼接起来 17 print(full_name) 18 print('Hello, ' + full_name.title() + "!") # 上述两种特性的灵活应用,也可以使用一个新的变量存储合并之后的字符串 19 20 print('languages:\npython\nc\nc++\njavascript') # 使用\n, \t等可以使得字符串中增加换行或者tab 21 22 language_type = ' python ' 23 print(language_type) 24 print('.' + language_type.strip() + '.') #用strip()函数去除字符串头和尾的空格 25 print('.' + language_type.lstrip() + '.') #用lstrip()函数去除字符串头部的空格 26 print('.' + language_type.rstrip() + '.') #用rstrip()函数去除字符串尾部的空格 27 28 string = "python is a 'language'" #在需要使用单引号的情况下要以双引号表示字符串,反之使用单引号表示,如果未出现需要表示单双引号的情况则两种都可以 29 print(string) 30 31 age = 23 32 print('happy ' + str(age) + 'rd Birthday') #在python中使用str()函数使得一个整数变为字符串 33 floatage = 23.234 34 print(str(floatage)) # print as a string and it is '23.234' 35 36 num1 = 3 / 2 # 表示浮点数除法 37 print(num1) 38 num2 = 3 // 2 # 表示整数除法 39 print(num2) 40 print("%.2f" % (num1)) # 表示小数点后保留两位有效数字 41 42 # 列表 43 bicycles = ['trek', 'cannondale', 'redline', 'specialized'] 44 print(bicycles) # 这种打印方式会打印列表的内部表示 45 46 print(bicycles[0]) 47 print(bicycles[-3].title()) 48 print(bicycles[1].upper()) 49 print(bicycles[-2].lower()) 50 print(bicycles[3].strip()) 51 print(bicycles[-1].lstrip()) # python中使用-1表示列表中最后一个元素的索引 52 bicycles[0] = 'ducati' # 通过索引直接修改指定位置的值 53 print(bicycles[0]) 54 55 print(bicycles) 56 bicycles.append('ducati') 57 print(bicycles) # 通过append()向列表尾部添加元素 58 bicycles.insert(0, 'ducati') # 通过insert()向列表的第0个位置插入一个元素'ducati' 59 print(bicycles) 60 61 del bicycles[0] # 删除列表第0个位置的元素 62 print(bicycles) 63 motorcycles = ['honda', 'yamaha', 'suzuki'] 64 print(motorcycles) 65 66 poped_motorcycle = motorcycles.pop() # 通过pop()删除列表中的元素并且将这个元素赋值给另一个同类型的元素 67 print(motorcycles) 68 print(poped_motorcycle) 69 first_owned = motorcycles.pop(1) # 通过pop(1)删除列表中第1个位置的元素并且将这个元素赋值给另一个同类型的元素 70 print('The first motorcycle I owned was a ' + first_owned.title() + '.') 71 72 motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati', 'suzuki', 'ducati'] 73 print(motorcycles) 74 motorcycles.remove('ducati') # 通过remove('ducati')将列表中从前往后出现的第一个名为'ducati'的元素删除,可使用循环实现全部删除,romove()删除的元素也可以赋值给同类型的其他元素 75 print(motorcycles) 76 77 cars = ['bmw', 'audi', 'toyota', 'subaru'] 78 cars.sort() #通过sort()函数将列表按照字典序从小到大排序 79 print(cars) 80 cars.sort(reverse = True) # 通过reverse = True使得列表按照字典序从大到小排序 81 print(cars) 82 83 cars = ['bmw', 'audi', 'toyota', 'subaru'] 84 print(cars) 85 print(sorted(cars)) # 通过sorted()函数使得cars内部的元素变得暂时有序并输出,但其实并不会影响cars内部的元素 86 print(cars) 87 print(sorted(cars, reverse = True)) # 递减序输出 88 print(cars) 89 90 print(cars) 91 cars.reverse() # 将列表元素反转 92 print(cars) 93 94 print(len(cars)) # 输出列表长度 95 96 # for in 循环遍历整个列表: 97 magicians = ['alice', 'david', 'carolina'] 98 for magician in magicians: # 一般使用名词复数形式表示整个列表,用单个名词代表单个元素 99 print(magician) 100 print(magician.title() + ', that was a great trick!') 101 102 # 创建数字列表 103 for value in range(1, 5): # 生成1-4的字典序最小的全排列数字 104 print(value) 105 106 # 使用range()创建数字列表 107 numbers = list(range(1, 6)) # 创建了一个元素为1~5的数字列表 108 print(numbers) 109 numbers = list(range(1, 6, 2)) # 可以指定步长为2 110 print(numbers) 111 112 # 使用range()创建一个列表,包含前十个数的平方 113 squares = [] 114 for value in range(1, 11): 115 square = value ** 2 116 squares.append(square) 117 print(squares) 118 print(sum(squares)) # sum表示对列表求和的结果 119 print(min(squares)) # min表示一个列表中最小的元素 120 print(max(squares)) # max表示一个列表中最大的元素 121 122 # 列表解析 123 squares = [value ** 2 for value in range(1, 11)] 124 print(squares) 125 126 # 切片:使用列表的一部分 127 # 即使列表的长度发生变化输出依然为下面所描述的那样 128 players = ['charles', 'martina', 'michael', 'florence', 'eli'] 129 print(players[0:3]) #输出第一个到第三个人的名称 130 print(players[1:4]) #输出第二个人到第四个人的名称 131 print(players[3:]) #输出第四个人及后面所有人的名称 132 print(players[:3]) #输出第三个人及前面所有人的名称 133 print(players[-3:]) #输出最后三名队员的名称 134 135 # 遍历切片 136 for player in players[0:3]: # 使用for in 语句遍历这个切片 137 print(player.title()) 138 139 # 复制列表 140 my_foods = ['pizza', 'falafel', 'carrot cake'] 141 friend_foods = my_foods[:] # 通过将切片前后范围都省略从而将整个列表重新复制到另一个列表中,不能直接使用等于号复制列表 142 print(my_foods) 143 print(friend_foods) 144 145 # 元组:不可变列表 146 #顾名思义就是列表中的值不可改变,定义列表时使用圆括号而非方括号,使用元组中的元素时使用方括号 147 dimensions = (200, 50) 148 print(dimensions[0]) 149 print(dimensions[1]) 150 151 # 遍历元组的所有值 152 for dimension in dimensions: 153 print(dimension) 154 155 # 修改元组变量 156 dimensions = (200, 50) 157 for dimension in dimensions: 158 print(dimension) 159 dimensions = (400, 10) #可以重新定义以修改元组的值,但不可以修改元组内某一个值,比如demensions[0] = 100是不可取的 160 for dimension in dimensions: 161 print(dimension) 162 163 # 条件判断语句 164 leap_years = [] 165 for value in range(1, 2019): 166 if(value % 4 == 0 and value % 100 != 0 or value % 400 == 0): # 使用 and 语句表示逻辑与,or表示逻辑或 167 leap_years.append(value) 168 print(len(leap_years)) 169 print(leap_years) 170 year = 92 171 if year in leap_years: # 使用in关键字判断某个值是否包含在某个数组或者元组中,not in为不包含 172 print('%d is leapyears' % (year)) 173 174 # 布尔表达式 175 is_sun = True 176 is_snow = False 177 if is_sun: 178 print('Today is warm!') 179 if is_snow: 180 print('Today is cold!') 181 182 # 判断列表是否为空 183 requested_toppings = [] 184 if requested_toppings: # 使用if + 列表名 判断是否列表中是否有元素 185 for requested_topping in requested_toppings: 186 print('Adding ' + requested_topping + '.') 187 print('\nFinished making your pizza!') 188 else: 189 print("Are you sure you want to a plain pizza?") 190 191 192 # 字典 193 my_friend = { 194 'first_name' : 'li', 195 'last_name' : 'hong jiang', 196 'age' : 21, 197 'city' : 'xianshaanxi' 198 } 199 my_friend['is_passed_cet6'] = True # 向字典my_friend中添加元素 200 my_friend_name = my_friend['last_name'] + my_friend['first_name'] # 访问字典中的元素 201 print(my_friend_name) 202 print("My friend's name is " + str(my_friend['age'])) 203 print(my_friend) 204 205 print(my_friend['age']) 206 my_friend['age'] = 23 # 通过赋值语句修改字典中某key所对应的value 207 print(my_friend['age']) 208 209 print(my_friend) 210 del my_friend['is_passed_cet6'] # 通过删除语句永久删除字典中某个key和他所对应的value 211 print(my_friend) 212 213 # 通过字典实现简单词汇表 214 vocabularys = { 215 'Abandon' : '放弃', 216 'Monday' :'星期一', 217 'Tuesday' : '星期二', 218 'Wednesday' : '星期三', 219 'Thursday' : '星期四', 220 'Give_up' : '放弃', 221 } 222 print(vocabularys['Abandon']) 223 print(vocabularys['Monday']) 224 print(vocabularys['Thursday']) 225 226 # 使用for in 语句实现对字典中所有key和value的访问 227 for vocabulary, translate in vocabularys.items(): 228 print("The means of " + vocabulary + " is " + translate + '.') 229 230 # 遍历字典中的所有键 231 for vocabulary in vocabularys.keys(): 232 print(vocabulary.title()) 233 234 # 也可以使用in和not in判断某个key是否为改字典中的key 235 if 'Friday' not in vocabularys.keys(): 236 print('Friday is not in vocabularys') 237 238 # 也可以使用sorted()函数使得字典中的所有key按照字典序递增序被访问 239 for vocabulary in sorted(vocabularys.keys()): 240 print(vocabulary) 241 242 # 遍历字典中的所有值 243 for value in vocabularys.values(): 244 print(value) 245 246 # 可以使用集合set排除value中的重复元素 247 for value in set(vocabularys.values()): 248 print(value.title()) 249 250 # 嵌套 251 # 字典列表 252 alien_0 = { 253 'color' : 'green', 254 'points' : 5, 255 } 256 alien_1 = { 257 'color' :'green', 258 'points' : 5, 259 } 260 alien_2 = { 261 'color' : ' green', 262 'points' : 5, 263 } 264 aliens = [alien_0, alien_1, alien_2] 265 for alien in aliens: 266 print(alien) 267 268 # 使用for语句生成多个外星人 269 for alien_number in range(30): 270 new_alien = { 271 'color' : 'green', 272 'points' : 5, 273 } 274 aliens.append(new_alien) 275 # 输出前五个机器人的信息 276 for alien in aliens[:5]: 277 print(alien) 278 279 # 在字典中存储列表 280 favorite_languages = { 281 'jen' : ['python', 'ruby'], 282 'sarah': ['ruby', 'go'], 283 'phil' : ['python', 'haskell'], 284 'edward' : ['c'], 285 } 286 for name, languages in favorite_languages.items(): 287 print('\n' + name.title() + "'s favoriete languages are:") 288 for language in languages: 289 print("\t" + language.title()) 290 291 # 字典嵌套字典 292 users = { 293 'aeinstein': { 294 'first' : 'albert', 295 'last' : 'einstein', 296 'location' : 'princeton', 297 }, 298 'mcurie' : { 299 'first' : 'marie', 300 'last' : 'curie', 301 'location' : 'pairs', 302 }, 303 304 } 305 for username, user_info in users.items(): 306 print('\nUsername:' + username) 307 full_name = user_info['first'] + ' ' + user_info['last'] 308 location = user_info['location'] 309 310 print('t Full_name :' + full_name.title()) 311 print("\t Location: " + location.title()) 312 313 if __name__ == '__main__': 314 main()