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: python c c++ javascript') # 使用 , 等可以使得字符串中增加换行或者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(' Finished 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(' ' + name.title() + "'s favoriete languages are:") 288 for language in languages: 289 print(" " + 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(' Username:' + 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(" Location: " + location.title()) 312 313 # while循环 314 #使用while循环删除列表中特定值的所有元素 315 pets = ['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat'] 316 print(pets) 317 while 'cat' in pets: 318 pets.remove('cat') # 使用列表中的remove()函数删除列表中值为'cat'的元素 319 print(pets) 320 321 #使用用户输入来填充字典 322 responses = {} 323 polling_active = True 324 while polling_active: 325 name = input(' What is your name?') 326 response = input('Which mountain would you like to climb someday') 327 328 responses[name] = response # 向字典中添加一对值 329 330 repeat = input('Would you like to let another person respong?(yes, no)') 331 if repeat == 'no': 332 polling_active = False 333 print(' --- Poll Pesults ---') 334 for name, response in responses.items(): 335 print(name + 'Would like to climb' + response + '.') 336 337 if __name__ == '__main__': 338 main()
第八章函数调用基本操作:
1 def main(): 2 a = int(input('a = ')) 3 b = int(input('b = ')) 4 print_sum_of_two_numbers(a, b) # 此处传入的参数为位置实参,传入位置实参时要特别注意传入参数的顺序要符合原本函数形参的顺序 5 print_sum_of_two_numbers(x = a, y = b) # 此处传入的参数为关键字实参,通过函数中形参的名称与需要传入的实参一一对应,完成函数调用 6 print_sum_of_two_numbers(x = 3) # 函数形参可以添加默认值,未传入实参的参数则按照形参的值进行相关运算 7 8 numbers = [1, 2, 3, 4, 6] 9 sum = get_sum(numbers) 10 print(sum) 11 print(numbers) 12 change_list(numbers[1:4]) 13 print(numbers) 14 make_pizza1('mushrooms', 'green peppers', 'extra cheese') 15 make_pizza2(18, 'pepperoni') 16 user_profile = build_profile('albert', 'einstein', location = 'princeton', field = 'physics') 17 print(user_profile) 18 19 def print_sum_of_two_numbers(x = 0, y = 0): 20 print(x + y) 21 22 # 使用''空字符串将middle_name初始化,if语句对空字符串判断返回False,因此函数就可以根据用户的输入情况给出对应的正确的输出 23 def got_formatted_name(first_name, last_name, middle_name = ""): 24 if middle_name: 25 full_name = first_name + ' ' + middle_name + ' ' + last_name 26 else: 27 full_name = first_name + ' ' + last_name 28 return full_name 29 30 # 函数可以返回任意类型的值,字典元组列表集合等都可 31 def build_person(first_name, last_name): 32 person = { 33 'first' : first_name, 34 'last' : last_name, 35 } 36 return person 37 38 # 向函数传递一个列表作为实参,可以函数内修改列表内的值,且为永久修改 39 def get_sum(numbers): 40 sum = 0 41 for number in numbers: 42 sum += number 43 return sum 44 45 # 如果想要避免函数修改列表的值,那么就可以传递列表的切片即可 46 def change_list(numbers): 47 for number in numbers: 48 print(number) 49 50 # 传递任意数量的参数 51 def make_pizza1(*toppings): # 通过形参名*toppings让python创建一个名为toppings的空元组,并接受调用函数时所给的实参 52 for topping in toppings: 53 print('---' + topping) 54 55 # 结合使用位置实参和任意数量实参 56 def make_pizza2(size, *toppings): # 第一个参数必须为大小,第二个参数为其他参数 57 print(' Making a ' + str(size) + '-inch pizza with the following toppings:') 58 for topping in toppings: 59 print('-' + topping) 60 61 # 使用任意数量的关键字实参 62 def build_profile(first, last, **user_info): # 形参**user_info让python建立一个空字典 63 profile = {} 64 profile['first_name'] = first 65 profile['last_name'] = last 66 for key, value in user_info.items(): 67 profile[key] = value 68 return profile 69 70 71 if __name__ == '__main__': 72 main()
将函数导入模块,使用模块中的制定函数:
1 import function # 通过import语句可以调用function模块内的所有函数,通过模块名.函数名访问某个函数 2 from function import build_profile, get_sum # 通过from import语句导入某个文件中的某个函数,可通过函数名直接访问 3 from function import build_person as bp # 使用as给函数制定别名 4 import message as m # 使用as给模块指定别名,但是调用时需要使用模块名.函数名访问某个函数 5 from pizza import * # 使用*导入模块中的所有函数,导入之后的函数可以直接通过名称使用而不需要通过模块.函数名的方式使用 6 7 def main(): 8 user_profile = function.build_profile('albert', 'einstein', location = 'princeton', field = 'physics') 9 print(user_profile) 10 numbers = [1, 2, 3, 4] 11 sum = get_sum(numbers) 12 print(sum) 13 person = bp('jimi', 'hendrix') 14 print(person) 15 16 if __name__ == '__main__': 17 main()
python3中的基本输入输出:
1 def main(): 2 # 多组输入模板 3 """ 4 while True: 5 try: 6 numbers = list(map(int, input().split())) # split()是分割函数,将字符串以字符c分割,c默认值为空格,返回值为字符串,map函数将字符串按照指定类型映射到列表中 7 ans = 0 8 for number in numbers: 9 ans += number 10 print(ans) 11 except EOFError: 12 break 13 t = int(input()) 14 for _ in range(t): 15 numbers = list(map(int, input().split())) 16 ans = 0 17 for number in numbers: 18 ans += number 19 print(ans) 20 """ 21 22 23 if __name__ == '__main__': 24 main()