py基础

基本语句和函数等练习,知识点都在代码里。。。
  1 """
  2 a = int(input('a = '))
  3 b = int(input('b = '))
  4 print('%d + %d = %d' % (a, b, a + b))
  5 print("%d / %d = %f" %  (a, b, a / b))
  6 print('%d // %d = %d' % (a, b, a // b))
  7 print('%d * %d = %d' % (a, b, a * b))
  8 print('%d ** %d = %d' % (a, b, a ** b))
  9 print('%d %% %d = %d' % (a, b, a % b))
 10 """
 11 
 12 """
 13 a = 100
 14 b = 12.345
 15 c = 1 + 5j
 16 d = 'hello, world'
 17 e = True
 18 print(type(a))
 19 print(type(b))
 20 print(type(c))
 21 print(type(d))
 22 print(type(e))
 23 """
 24 
 25 """
 26 f = float(input())
 27 c = (f - 32) / 1.8
 28 print('%.1f华氏度 = %.1f摄氏度' % (f, c))
 29 """
 30 
 31 """
 32 import math
 33 
 34 radius = float(input('请输入圆的半径'))
 35 perimeter = 2 * math.pi * radius
 36 area = math.pi * radius * radius
 37 print('C = %.3f, S = %.3f'% (perimeter, area))
 38 """
 39 
 40 """
 41 year = int(input('please input year:'))
 42 is_leap = (year % 4 == 0 and year % 100 != 0 or year % 400 == 0)
 43 print(is_leap)
 44 """
 45 
 46 """
 47 username = input('请输出用户名')
 48 password = input('请输出密码')
 49 if username == 'admin' and password == '123456':
 50     print('身份验证成功')
 51 else:
 52     print('身份验证失败')
 53 """
 54 
 55 """
 56 x = float(input())
 57 if x > 1:
 58     y = 3 * x - 5
 59 elif x >= -1:
 60     y = x + 2
 61 else:
 62     y = 5 * x + 3
 63 print('f(%.2f) = %.2f' % (x, y))
 64 """
 65 
 66 """
 67 import math
 68 a = float(input('a = '))
 69 b = float(input('b = '))
 70 c = float(input('c = '))
 71 if a + b > c and a + c > b and b + c > a:
 72     print('周长:%f' % (a + b + c))
 73     p = (a + b + c) / 2
 74     area = math.sqrt(p * (p - a) * (p - b) * (p - c))
 75     print('面积:%f' % (area))
 76 else:
 77     print('不能构成三角形')
 78 """
 79 
 80 """
 81 sum = 0
 82 for x in range(101):# 产生一个从0~100的整数序列
 83     sum += x
 84 print(int(sum))
 85 """
 86 """
 87 sum = 0
 88 for x in range(1, 101):# 产生一个从1~100的整数序列
 89     sum += x
 90 print(int(sum))
 91 """
 92 
 93 """
 94 sum = 0
 95 for x in range(1, 100, 2):# 可以产生一个1~99的奇数序列,其中步长为2,即数值序列的增量
 96     sum += x
 97 print(int(sum))
 98 """
 99 
100 """
101 import random
102 
103 answer = random.randint(1, 100)
104 counter = 0
105 while True:
106     counter += 1
107     number = int(input('请输出:'))
108     if number < answer:
109         print('大一点')
110     if number > answer:
111         print('小一点')
112     if number == answer:
113         print('恭喜你猜对了')
114         break
115 print('你总共猜了%d次' % (counter))
116 if counter > 7:
117     print('你的智商余额明显不足')
118 """
119 
120 """
121 for i in range(1, 101):
122     for j in range (1, 101):
123         print('%d * %d = %d' % (i, j, i * j), end = '\t')# 在print语句之后使用','加end = '\t'使得输出语句输出tab而非换行
124     print()# 输出换行
125 """
126 
127 """
128 from math import sqrt
129 
130 while(True):
131     try:
132         num = int(input('请输入一个正整数:'))
133         end = int(sqrt(num))
134         is_prime = True
135         for x in range(2, end + 1):
136             if num % x == 0:
137                 is_prime = False
138                 break
139         if is_prime and num != 1:
140             print('%d 是素数' % (num))
141         else:
142             print('%d 不是素数' % (num))
143     except EOFError:
144         pass
145 """
146 
147 """
148 x = int(input())
149 y = int(input())
150 if(x > y):
151     x, y = y, x # 可以通过这种方式直接交换两个变量的值
152 for factor in range(x, 0, -1):
153     if x % factor == 0 and y % factor == 0:
154         print('%d 和 %d 的最大公约数是 %d' % (x, y, factor))
155         print('%d 和 %d 的最小公倍数是 %d' % (x, y, x * y // factor))
156         break
157 """
158 
159 """
160 row = int(input('请输入行数:'))
161 for i in range(row):
162     for j in range(i + 1):
163         print('*', end = '')# end = ''表示连接输出
164     print()
165 """
166 
167 """
168 row = int(input('请输入行数:'))
169 for i in range(row):
170     for j in range(row):
171         if j < row - i - 1:
172             print(' ', end = '')
173         else:
174             print('*', end = '')
175     print()
176 """
177 
178 """
179 row = int(input("请输出行数:"))
180 for i in range(row):
181     for j in range (row - i - 1):
182         print(' ', end = '')
183     for j in range(2 * i + 1):
184         print('*', end = '')
185     print()
186 """
View Code
 1 """
 2 # 寻找水仙花数 :水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身
 3 
 4 for i in range(100, 1000):
 5     x = int(i)
 6     sum = 0
 7     while(x > 0):
 8         sum += (x % 10) ** 3
 9         x //= 10
10     if sum == i:
11         print('%d 是水仙花数' % sum)
12 """
13 
14 # 如果一个数恰好等于它的因子之和,则称该数为“完全数”。
15 # 这里我们以1e4以内的完全数为例求解
16 
17 """
18 import math
19 
20 for i in range(1, 10001):
21     sum = 0
22     end = int(math.sqrt(i))
23     for j in range(1, end + 1):
24         if i % j == 0:
25             sum += j
26             if j > 1 and i // j != j:
27                 sum += i // j
28     if sum == i:
29         print("%d 是完全数" % i)
30 """
31 
32 """
33 # 百钱百鸡问题:我国古代数学家张丘建在《算经》一书中提出的数学问题:
34 # 鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
35 
36 for i in range(0, 20):
37     for j in range(0, 33):
38         z = 100 - i - j
39         if 5 * i + 3 * j + z // 3 == 100:
40             print('公鸡: %d只, 母鸡: %d只, 小鸡: %d只' % (i, j, z))
41 """
42 
43 """
44 # 生成斐波纳挈数列
45 
46 a = 0
47 b = 1
48 for _ in range(20):
49     a, b = b, a + b
50     print(a, end = ' ')
51 """
52 
53 """
54 # Craps赌博游戏
55 # 玩家掷两个骰子,每个骰子点数为1-6,如果第一次点数和为7或11,则玩家胜;
56 # 如果点数和为2、3或12,则玩家输庄家胜。
57 # 若和为其他点数,则记录第一次的点数和,玩家继续掷骰子,直至点数和等于第一次掷出的点数和则玩家胜;
58 # 若掷出的点数和为7则庄家胜。
59 
60 import random
61 
62 flag = False
63 cnt = 0
64 while not flag :
65     cnt += 1
66     a = random.randint(1, 6)
67     b = random.randint(1, 6)
68     if cnt == 1:
69         if a + b == 7 or a + b == 11:
70             print('a = %d, b = %d, 玩家胜利' % (a, b))
71             flag = True
72         elif a + b == 2 or a + b == 3 or a + b == 12:
73             flag = True
74             print('a = %d, b = %d, 庄家胜利' % (a, b))
75         else:
76             sum = a + b
77     else:
78         if a + b == 7:
79             print('sum等于%d, a + b = %d, 庄家胜利' % (sum, a + b))
80             flag = True
81         elif a + b == sum:
82             print('sum 等于 %d, a + b = %d, 玩家胜利' % (sum, a + b))
83             flag = True
84 """
View Code
  1 """
  2 #计算组合数的值
  3 
  4 m = int(input('m = '))
  5 n = int(input('n = '))
  6 fm = 1
  7 for num in range (1, m + 1):
  8     fm *= num
  9 fn = 1
 10 for num in range (1, n + 1):
 11     fn *= num
 12 fmn = 1
 13 for num in range (1, m - n + 1):
 14     fmn *= num
 15 print(fm // fn // fmn)
 16 """
 17 
 18 """
 19 # 函数命名遵循变量命名规则,以def开头
 20 def factorial(num) :
 21     result = 1
 22     for n in range(1, num + 1):
 23         result *= n
 24     return result
 25 
 26 m = int(input('m = '))
 27 n = int(input('n = '))
 28 print(factorial(m) // factorial(n) // factorial(m - n))
 29 """
 30 
 31 """
 32 from random import randint
 33 
 34 def roll_dice(n = 2):
 35     total = 0
 36     for _ in range(n):
 37         total += randint(1, 6)
 38     return total
 39 
 40 def add(a = 0, b = 0, c = 0):
 41     return a + b + c
 42 
 43 # 如果没有指定参数那么使用默认的值摇两颗骰子
 44 print(roll_dice())
 45 #摇三颗骰子
 46 print(roll_dice(3))
 47 print(add())
 48 print(add(1))
 49 print(add(1, 2))
 50 print(add(1, 2, 3))
 51 #传递参数时可以不按照设定的顺序进行传递
 52 print(add(c = 50, a = 100, b = 200))
 53 """
 54 
 55 """
 56 #在参数名前的*表示args是一个可变的参数
 57 #即在调用add函数时可以传入0个或者多个参数
 58 
 59 def add(*args):
 60     total = 0
 61     for val in args:
 62         total += val
 63     return total
 64 
 65 print(add())
 66 print(add(1, 2))
 67 print(add(1, 3, 4, 5, 6))
 68 """
 69 
 70 """
 71 #在python中,如果在同一个文件中定义了两个相同名字的函数,那么后面的函数会覆盖之前的那个函数,也就意味着两个之中其实只有一个是存在的。
 72 #但是在不同的模块即不同的py文件中可以存在相同文件名的函数,比如module1.py和module2.py中各有一个foo()函数那么我们可以通过下面这种方式访问里面的具体的函数。
 73 
 74 #module1.py
 75 def foo():
 76     print('hello, world!')
 77 #module2.py
 78 def foo():
 79     print('goodbye, world!')
 80 
 81 #test.py
 82 from module1 import foo
 83 
 84 foo()
 85 
 86 from module2 import foo
 87 
 88 foo()
 89 
 90 #也可以按照下面的这种方式区分到底要使用哪一个foo函数。
 91 
 92 #test.py
 93 import module1 as m1
 94 import module2 as m2
 95 m1.foo()
 96 m2.foo()
 97 
 98 # 但是实际上,如果我们导入的模块除了定义函数之外还有其他可执行代码,那么python解释器在导入这个模块的时候也会执行这部分代码
 99 # 我们可以用如下的if语句编写其它执行代码,这样其它代码只有直接调用的时候才会执行,因为只有直接执行的模块的名字才是“__main__”。
100 
101 def foo():
102     pass
103 def bar():
104     pass
105 
106 #_name_是Python中一个隐含的变量它代表着模块的名字
107 # 只有被Python解释器直接执行的模块的名字才是_main_
108 if __name__ == '__main__':
109     print('call foo()')
110     foo()
111     print('call bar()')
112     bar()
113 
114 test.py
115 
116 import module3
117 
118 #导入module3时不会执行模块中if条件成立时的代码,因为模块的名字是module3而不是_main_
119 
120 """
121 
122 # Day 6 : Function: Trainning
123 
124 # 在下面得gcd函数实现过程中,出现了一个语句如果x > y则执行交换,否则不完成交换
125 """
126 # 练习1:实现计算求最大公约数和最小公倍数的函数。
127 def gcd(x, y):
128     (x, y) = (y, x) if x > y else (x, y)
129     for factor in range(x, 0, -1):
130         if(x % factor == 0 and y % factor == 0):
131             return factor
132 def lcm(x, y):
133     return x * y // gcd(x, y)
134 
135 print(gcd(1, 3))
136 print(lcm(2, 3))
137 """
138 
139 """
140 # 练习2:实现判断一个数是不是回文数的函数。
141 def is_palindrome(num):
142     temp = num
143     total = 0
144     while temp > 0:
145         total = total * 10 + temp % 10
146         temp //= 10
147     return total == num
148 """
149 
150 """
151 #练习3:实现判断一个数是不是素数的函数。
152 from math import sqrt
153 def is_prime(num):
154     for factor in range(2, int(sqrt(num) + 1)):
155         if num % factor == 0:
156             return False
157     return True if num != 1 else False
158 
159 a = int(input('please input a positive number: '))
160 if is_prime(a):
161     print('%d is prime' % a)
162 else:
163     print('%d is not prime' % a)
164 """
165 
166 """
167 #练习4:写一个程序判断输入的正整数是不是回文素数。
168 
169 if __name__ == '__main__':
170     num = int(input('请输入正整数:'))
171     if is_palindrome(num) and is_prime(num):
172         print('%d 是回文素数' % num)
173 """
174 
175 # 有关python变量作用域的问题
176 """
177     Python中一般有
178         局部作用域:某个函数内部申请的变量只能在这个函数内或者函数内嵌套的函数内使用
179         嵌套作用域:如果A函数属于B函数的内部函数,那么在函数A中命名的变量在函数A之外都不能使用,而在函数B中命名的变量可以在函数A中使用
180         全局作用域:不包含在任何一个函数内,默认包含在main函数之内的全局变量,在任何地方都可以使用或者更改(更改时需要使用global关键字引入)
181         内置作用域:一般指的是Python内置的那些隐含的标识符min,len等等都属于内置作用域。
182 """
183 
184 """
185 #在下面的代码中,函数内不可以修改a的值
186 
187 def foo():
188     a = 200
189     print(a)# 200
190 
191 if __name__ == '__main__':
192     a = 100
193     foo()
194     print(a)  # 100
195 """
196 
197 """
198 #我们可以通过以下的方式修改变量a的值
199 #我们使用global关键字来指示foo函数中的变量a来自于全局作用域,如果全局中没有a变量,那么下面得这个a变量就是一个申请的全局变量,也可以在全局使用
200 
201 def foo():
202     global a
203     a = 200
204     print(a) #200
205 
206 if __name__ == '__main__':
207     a = 100
208     foo()
209     print(a) #200
210 """
211 
212 """
213 #如果我们希望函数内部的函数能够修改嵌套作用域中的变量时可以使用nonlocal关键字来指示变量来自于嵌套作用域
214 
215 def foo():
216     a = 100
217     def bar():
218         nonlocal a
219         a = 200
220         print(a)
221     bar()
222     print(a)
223 
224 foo()
225 """
226 
227 """
228 #往后的Python代码格式按照如下格式书写
229 
230 def main():
231     # Todo:Add your code hear
232     pass
233 
234 if __name__ == '__main__':
235     main()
236 """
View Code

一行输入两个整数:

 1 def main():
 2     try:
 3         while(True):
 4             a, b = input().split()
 5             print(int(a) * int(b))
 6     except EOFError:
 7         pass
 8 
 9 if __name__ == '__main__':
10     main()
View Code

每行一个整数:

 1 def main():
 2     try:
 3         while(True):
 4             a = input()
 5             b = input()
 6             print(int(a) * int(b))
 7     except EOFError:
 8         pass
 9 
10 if __name__ == '__main__':
11     main()
View Code

 

转载于:https://www.cnblogs.com/bianjunting/p/11232552.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值