py学习日记

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 # 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('\nWhat 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('\n --- 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('\nMaking 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()

 

posted @ 2019-07-28 01:04  Cruel_King  阅读(240)  评论(0编辑  收藏  举报