前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python 基础学习随笔

python 基础学习随笔

原创
作者头像
江小白
修改2019-06-10 16:44:12
5530
修改2019-06-10 16:44:12
举报
文章被收录于专栏:左瞅瞅,右瞅瞅

(一)print 字符串的拼接,与range 函数的简单使用

打印一个边长为n 的正方形:( str(), int() 字符串与数字的转换 )

代码语言:javascript
复制
a = int(input('>>>'))
for i in range(a):
    print('#'*a)
#?请打印一个空心正方形
代码语言:python
代码运行次数:0
复制
a = 5
print('*'*a)
for i in range(a-2):
    print('*'+' '*(a-2)+'*')
print('*'*5)
#简单实现,是否可以引用for 循环来实现
代码语言:python
代码运行次数:0
复制
a = 5
for i in range(a):
    if i == 0 or i == (a-1):
        print('*'*a)
    else:
        print('*'+' '*(a-2)+'*')
# range 函数前包后不包,注意边界问题
代码语言:javascript
复制
a = int(input('>>>'))
n = a//2
for i in range(-n,n):
    if i == -n or i == n-1:
        print('#'*a)
    else:
         print('#' + ' '*(a-2) + '#')
 # 对称负索引的使用,但是打出来是边长相等的吗,后边界对于奇数而言 n = n-a ,会不足奇数项

一百以内的奇数相加:(print 的在打印变量的时候不要添加引号)

代码语言:javascript
复制
a = 0
sum = 0
for i in range(1,100,2):
    a = a + i
    sum = sum + i   
print(sum)
代码语言:python
代码运行次数:0
复制
sum = 0
for i in range(1,100,2):
    sum += i
print(sum)
#  += 的巧妙使用
代码语言:javascript
复制
sum = 0
for i in range(1,100):
    if i%2 != 0:
         sum = sum + i
print(sum)
# 用取模作为奇数的判断条件

(二)if 条件判断的使用

成绩判断问题 :(二分法对于大数据量处理是一个不错的选择)

代码语言:python
代码运行次数:0
复制
score = int(input('please input your score>>>'))
if score > 70:
    if score > 90:
        print('A')
    elif score > 80:
        print('B')
    else:
        print('C')     
else:
    if score > 60:
        print('D')
    else:
        print('E')

#注意边界,注意区间的取值范围

成绩问题求1 到5 阶乘的和:

代码语言:python
代码运行次数:0
复制
n = 1
sum = 0
for i in range(1,6):
    n *= i
    sum += n
print(sum)
代码语言:javascript
复制
sum = 0
for i in range(1,6):
    tmp = 1
    for j in range(1,i+1):
        tmp *= j
    sum += tmp
print(sum)
#循环的嵌套使用,和l临时变量的使用

(三)for 循环的简单实现

求素数:

代码语言:python
代码运行次数:0
复制
num = int(input('please input your number>>>'))
for i in range(2,num):
    if num % i == 0:
        print('No')
        break
else:
    print('Yes')
#contnue 和 break 不是跳出语句块,所以if cond;break 不是跳出if,而是终止if 外的break所在的循环
#else  如果循环正常的执行结束,就执行else子句;(谜之else)
#如果使用break终止,else子句不会执行
代码语言:python
代码运行次数:0
复制
num = int(input('please input your number>>>'))
flag = False
for i in range(2,num):
    if num % i == 0:
        flag = True
        break
if flag:
    print('No')
else:
    print('Yes')

#引入一个标记,作为条件的判断

真值表:

  1. " " 假
  2. "string" 真
  3. 0 假
  4. >=1 真
  5. <=-1 真
  6. ()空元组 假
  7. []空列表 假
  8. {}空字典 假
  9. None 假

请输入若干个整数,打印出最大值:

代码语言:javascript
复制
a = int(input('>>>'))
while True:
    b = int(input('>>>'))
    if b:
        int(b)
        if a > b:
            print(a)
        else:
            a = b
            print(a)
    else:
        break
#以前的固有思维,对于if 条件的使用
代码语言:python
代码运行次数:0
复制
m = int(input('>>>'))
while True:
    c = input('>>>')
    if c:
        n = int(c)
        if n > m:
            m = n
        print(m)
    else:
        break
#作为python 语法条件的使用
#相同类型则可以比较大小
#不同类型可以比较是否相等

三目运算:

if 条件判断的简便写法:(判断俩个数的最大值)

代码语言:javascript
复制
a = int(input('>>>'))
b = int(input('>>>'))
print(a) if a>b else print(b)

升级版,输入若干整数,打印最大值:

代码语言:javascript
复制
max = int(input('>>>'))
flag = True
while flag:
    n = input('>>>')
    if n == 'quit':
        flag = False
    else:
        c = int(n)
        if c > max:
            max = c
        print(max)
#引号引起来为字符串

输入若干个值,每次输入后算出平均数:

代码语言:javascript
复制
sum = 0
count = 1
num1 = int(input('>>>'))
while True:
    num2 = input('>>>')
    if num2 == 'quit':
        break
    else:
        num2 = int(num2)
        count += 1
        sum = num1 + num2
        avg = sum/count
        print(avg)
#注意变量的重复赋值的迷惑性,break  跳出循环的巧妙使用,相比于打标签

九九乘法表的打印:(循环嵌套的使用)

代码语言:javascript
复制
for i in range(1,10):
    for j in range(1,i+1):
        line = str(i) + '*' + str(j) + '=' + str(i*j)
        print(line,end=' ')
    print()   
#print  为另起一行打印
代码语言:javascript
复制
for i in range(1,10):
    for j in range(1,i+1):
        print(('{}*{}={:2}'.format(j,i,j*i)),end=' ')
    print()
# 利用format 函数格式化输出
代码语言:javascript
复制
for i in range(1,10):
    line = ' '
    for j in range(1,i+1):
        line += '{}*{}={:2}    '.format(j,i,i*j)
    print(line)
#format  函数单引号里面的格式代表的输出格式
代码语言:javascript
复制
for i in range(1,10):
    line = ' '
    for j in range(1,i+1):
        line += '{1}*{0}={2:2}    '.format(j,i,i*j)
    print(line)
#format 函数默认索引为0,1,2.索引可以指定后面变量的使用 
代码语言:javascript
复制
for i in range(1,10):
    for j in range(1,10):
        if j <= i:
            print(str(j) + '*' + str(i) + '=' + str(i*j),end=' ')
    print()
# j  的取值范围巧妙做出判断

右上角乘法口诀表的打印:

代码语言:javascript
复制
for i in range(1,10):
    line = ''
    for j in range(1,10):
        if j >= i:
            line += str(i) + '*' + str(j) + '=' + str(i*j) + ' '
    print('{:>70}'.format(line))
#format  函数,<表示向左移动,> 表示向右移动
代码语言:python
代码运行次数:0
复制
for i in range(1,10):
    line = ' '
    for j in range(1,10):
        if j >= i:
            line += '{}*{}={:{}} '.format(j,i,j*i,2)
    print('{:>66}'.format(line))
#format  函数的嵌套赋值
for i in range(1,10):
    line = ' '
    for j in range(1,10):
        if j >= i:
            line += '{}*{}={:<{}}'.format(j,i,j*i,2 if j < 4 else 3)
    print('{:>66}'.format(line))
#三目运算的回顾使用

打印菱形:

代码语言:javascript
复制
num = int(input('>>>'))
a = num//2
for i in range(-3,4):
    if i < 0:
        space = -i
    else:
        space = i
    print(' '* space + '*'*(num-space*2))
#对称性的使用
代码语言:javascript
复制
a = int(input('>>>'))
n =  a//2
for i in range(-n,a-n+1):
    if i < 0:
        i = -i
    print(' '*i + '*'*(a-i*2))
#python 语法实现

打印对顶三角形:

代码语言:javascript
复制
num = int(input('>>>'))
e = num//2
for i in range(-e,n-e):
    if i < 0:
        prspace = -i
    else:
        prspace = i
    print(' '*(e-prspace) + '*'*(2*prspace+1))

打印⚡:

代码语言:javascript
复制
for i in range(-3,4):
    if i < 0:
        print (' '*(-i) + '*'*(4+i))
    elif i > 0:
        print(' '*3 + '*'*(4-i))
    else:
        print('*'*7)
代码语言:javascript
复制
num = int(input('>>>'))
e = num//2
for i in range(-e,e+1):
    if i < 0:
        print (' '*(-i) + '*'*(e+1+i))
    elif i > 0:
        print(' '*3 + '*'*(e+1-i))
    else:
        print('*'*num)
#注意变量的关系,和之间的替换

100以内,斐波那契数列

代码语言:javascript
复制
num1 = 0
num2 = 1
print(num1,num2,sep='\n')
while True:
    num3 = num1 + num2
    num1 = num2
    num2 = num3
    print(num3)
    if num3 > 100:
        break
代码语言:javascript
复制
num1=0
num2=1
while True:
    num1,num2 = num2,num1+num2
    print(num2)
    if num2 > 100:
        break
#简单写法

斐波那契数列第101项:

代码语言:javascript
复制
num1=0
num2=1
count = 2
while True:
    num1,num2 = num2,num1+num2
    count +=1
    if count == 101:
        print(num2)
        break
#注意 是0 开始还是1 开始
代码语言:javascript
复制
num1=0
num2=1
count = 2
while True:
    num1,num2 = num2,num1+num2
    count +=1
    if count == 101:
        print('{},{}'.format(count,num2))
        break
#format 函数的回顾使用
代码语言:javascript
复制
a = 1
b = 1
print(a)
print(b)
while True:
    a,b = b,a+b
    if b > 100: 
        break
    print(b)
#不同的写法注意边界问题

求10万以内的素数:(性能要求)

代码语言:javascript
复制
import datetime
start = datetime.datetime.now()
for i in range(3,100000,2):
    for j in range(3,int(i**0.5)+1,2):
        if i%j == 0:
            break
    else:
        print(i)
delta = (datetime.datetime.now()-start).total_seconds()
print(delta)
代码语言:javascript
复制
import datetime
start = datetime.datetime.now()
for i in range(3,100000):
    if i%2 == 0 or i%5 == 0:
        continue
    else:
        for j in range(3,int(i**0.5)+1,2):
            if i%j == 0:
                break
        else:
            print(i)
delta = (datetime.datetime.now()-start).total_seconds()
print(delta)

#datetime 函数的引入
#continue  的使用
#注意二层循环引用一层循环的变量,减少程序的空运行
代码语言:javascript
复制
list = [2]
for i in range(3,10,2):    
    for j in list:      
        if i%j == 0:
            break
    else:
        print(i)
        list.append(i)
        print(list)
#列表的引入
#算法的引入:一个合数一定可以分为几个素数的成绩。

猴子吃桃的问题:

每天吃一半并多吃一个,第十天发现只有一个桃子,求第一天一共有多少个桃子:

代码语言:javascript
复制
peach = 1
for i in range(9):
    peach = 2*(peach+1)
print(peach)
# 简单的数学问题代码实现

杨辉三角打印:

代码语言:javascript
复制
triangle = [[1],[1,1]]
n = 9
for i in range(2,n):
    newline = [1]
    pre = triangle[i-1]
    for j in range(i-1):
        val = pre[j] + pre[j+1]
        newline.append(val)
    newline.append(1)
    triangle.append(newline)
print(triangle)
代码语言:javascript
复制
n = 9
print([1])
pre = [1,1]
print(pre)
for i in range(2,n):
    newline = [1]
    for j in range(i-1):
        val = pre[j] + pre[j+1]
        newline.append(val)
    newline.append(1)
    print(newline)
    pre = newline
代码语言:javascript
复制
n = 9
for i in range(n):
    newline = [1]
    if i == 0:
        print(newline)
        continue
    for j in range(i-1):
        val = pre[j] + pre[j+1]
        newline.append(val)
    newline.append(1)
    print(newline)
    pre = newline
代码语言:javascript
复制
n = 9
pre = [1]
print(pre)
pre.insert(0,0)
pre.append(0)
for i in range(1,n):
    newline = []
    for j in range(i+1):
        val = pre[j] + pre[j+1]
        newline.append(val)
    print(newline)
    pre = newline
    pre.insert(0,0)
    pre.append(0)
代码语言:javascript
复制
n = 9
pre = [1]
print(pre)
pre.append(0)
for i in range(1,n):
    newline = []
    for j in range(i+1):
        val = pre[j-1] + pre[j]
        newline.append(val)
    print(newline)
    pre = newline
    pre.append(0)

转置矩阵:

代码语言:javascript
复制
1  2  3                    1  4  7
4  5  6   -------->        2  5  8
7  8  9                    3  6  9
代码语言:javascript
复制
matrix = [[1,2,3],[4,5,6],[7,8,9]]
for i,row in enumerate(matrix):
    for j,col in enumerate(row):
        if i < j:
            matrix[i][j],matrix[j][i] = matrix[j][i],matrix[i][j]
print(matrix)
代码语言:javascript
复制
matrix = [[1,2,3],[4,5,6],[7,8,9]]
length = len(matrix)
for i in range(length):
    for j in range(i):
        matrix[i][j],matrix[j][i] = matrix[j][i],matrix[i][j]
print(matrix)
代码语言:javascript
复制
1 2 3                   1 4
             ------->   2 5
4 5 6                   3 6
代码语言:javascript
复制
matrix = [[1,2,3],[4,5,6]]
tm = []
for row in matrix:
    for i,col in enumerate(row):
        if len(tm) < i + 1:
            tm.append([])
        tm[i].append(col)
print(matrix)
print(tm)

用户输入数字打印每个数字重复的次数:

代码语言:javascript
复制
num = input('>>>')
d = {}
for c in num:
    if not d.get(c):
        d[c] = 1
        continue
    d[c] += 1
print(d)
代码语言:javascript
复制
num = input('>>>')
d = {}
for c in num:
    if c not in d.keys():
        d[c] = 1
    else:
        d[c] += 1
print(d)

随机产生100个整数,数字范围[-100,100],升序输出其重复的数字:

代码语言:javascript
复制
import random
n = 100
nums = [0] * n
for i in range(n):
    nums[i] = random.randint(-1000,10000)
print(nums)
t = nums.copy()
t.sort()
print(t)

d = {}
for x in nums:
    if x not in d.keys():
        d[x] = 1
    else:
        d[x] += 1
print(d)
d1 = sorted(d.items())
print(d1)

字符串重复统计:

代码语言:javascript
复制
import random
alphabet = 'abcdefghijklmnopqrstuvwxyz'
words = []
for _ in range(100):
    words.append(''.join(random.choice(alphabet) for _ in range(2)))
d = {}
for x in words:
    d[x] = d.get(x,0) + 1
print(d)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • (一)print 字符串的拼接,与range 函数的简单使用
    • 打印一个边长为n 的正方形:( str(), int() 字符串与数字的转换 )
      • 一百以内的奇数相加:(print 的在打印变量的时候不要添加引号)
      • (二)if 条件判断的使用
        • 成绩判断问题 :(二分法对于大数据量处理是一个不错的选择)
        • 成绩问题求1 到5 阶乘的和:
          • (三)for 循环的简单实现
            • 求素数:
              • 真值表:
            • 请输入若干个整数,打印出最大值:
              • 三目运算:
                • if 条件判断的简便写法:(判断俩个数的最大值)
                  • 升级版,输入若干整数,打印最大值:
                    • 输入若干个值,每次输入后算出平均数:
                      • 九九乘法表的打印:(循环嵌套的使用)
                        • 右上角乘法口诀表的打印:
                      • 打印菱形:
                        • 打印对顶三角形:
                          • 100以内,斐波那契数列
                            • 斐波那契数列第101项:
                              • 求10万以内的素数:(性能要求)
                                • 猴子吃桃的问题:
                                • 每天吃一半并多吃一个,第十天发现只有一个桃子,求第一天一共有多少个桃子:
                              • 杨辉三角打印:
                                • 转置矩阵:
                                  • 用户输入数字打印每个数字重复的次数:
                                  • 随机产生100个整数,数字范围[-100,100],升序输出其重复的数字:
                                  • 字符串重复统计:
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档