2020.05.28--预习课--第3节--基本语法、随机循环、字符串

一、软技能

1、看懂还是不会写呀,怎么办?

  写的少,多写。

  1.1、看懂别人的代码,整理出代码的算法思路,用中文或者伪代码写出来。

  1.2、依据算法的描述步骤或者伪代码,把代码推导出来。(语法不熟的情况,整理好笔记,方便 自己查询)

  1.3、当天先推导一次,明天再来一次,一周后再来一次,一个月后再来一次。(如果这几次都可以 写出来,这道题就算溶于你的骨血了。如果不行,在重复以上过程)

 

  慢慢的具备解题的思路,编程的思路

 

  先模仿在原创。

  学习的理论:

    学习一门新的东西,冷启动阶段:学了很久,都没有一个正反馈(成就感)

    有的人没坚持住,就放弃了。有的过了这段,慢慢走向人生巅峰了

二、

1、小练习:if elif else

  输入内容,做判断,大于0,等于0,小于0

  读入一个数字

>>> n= input("请输入一个数字:")
请输入一个数字:-1
>>> n=int(n)
>>> n
-1
>>> if n>0:
...     print("输入的是个正数!")
... elif n==0:
...     print("输入的数字是个0!")
... else:
...     print("输入的数字是个负数")
...
输入的数字是个负数

2、range(n,m,t) n,起始;m,结束;t,步长

2.1、正着取

>>> range(10)
range(0, 10)
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(5,10))
[5, 6, 7, 8, 9]
>>> list(range(1,10,2))
[1, 3, 5, 7, 9]
>>> range(-5,10)
range(-5, 10)
>>> list(range(-5,10,3))
[-5, -2, 1, 4, 7]
>>> 

2.2、倒着取,递减,步长为负,所以起始 n > m 结束

>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(10,1,-1))
[10, 9, 8, 7, 6, 5, 4, 3, 2]
>>> 

2.3、取不到,

>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(1,10,-1))
[]
>>> 

 2.4、循环中使用range

>>> for i in range(5):
...     print (i)
... 
0
1
2
3
4
>>> 

 

 3、while循环

3.1、死循环--什么时候需要用到死循环?---- 不能让服务器停止的时候

3.1.1、小练习:

  题目:用while循环,读入数据,当输入exit,结束循环

  输入其他数据,直接打印

  while循环在不知道需要执行几次的时候,来使用

 

>>> while True:
...     msg = input("请输入>>:")
...     if msg == 'exit':
...             break
...     else:
...             print(msg)
... 
请输入>>:1
1
请输入>>:?><:"{]
?><:"{]
请输入>>:exit
>>> 

 

3.1.2、小练习

  题目:

    输入的内容如果是纯数字,就把这个值做一个累加。到exit的时候退出。 

>>> sum = 0
>>> while True:
...     number = input("请输入>>:")
...     if number.isdigit():
...             sum += int(number)
...     if number == 'exit':
...             print(sum)
...             break
... 
请输入>>:1
请输入>>:3
请输入>>:4
请输入>>:6
请输入>>:d
请输入>>:s
请输入>>:ge
请输入>>:56
请输入>>:56.44
请输入>>:4.22
请输入>>:exit
70
>>> 
方法一:
sum = 0
while True:
    number = input("请输入>>:")
    if number == 'exit':
        print(sum)
        break

    for i in number:
        if i not in '0123456789':
            break
    else:
        sum += int(number)


"sum".isnumeric()
方法二:
sum = 0
while True:
    number = input("请输入>>:")
    if number.isnumeric():
        sum += int(number)
    if number == 'exit':
        print(sum)
        break
方法三:

3.2、混合循环

>>> for i in range(5):
...     j = i
...     while j>0:
...         print(j)
...         j-=1

3.3、continue

for i in range(10):
    if i==4 or i ==5 or i ==6:
        continue  #结束当前这次循环,continue后面的语句将不执行
    print(i) 

3.4、break

4、随机生成:random

>>> import random
>>> random.random()    #小数
0.9133401080989699
>>> random.randint(1,10)    #指定范围的整数
2
>>> random.choice([2,4,6,8,10])    #指定范围的随机
10
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> random.shuffle(a)    #打乱
>>> a
[4, 8, 5, 6, 3, 9, 0, 2, 7, 1]
>>> random.uniform(10,20)    #指定范围的小数
14.482478230408157

4.1、练习

4.1.1、生成随机的9位纯小写字母的密码

import random
password = ''
for i in range(9):
    password += chr(random.randint(97, 122))
print(password)
方法一:
import random
import string
password = ''
s_lower = string.ascii_lowercase
for i in range(9):
    password += random.choice(s_lower)
print(password)
方法二:string

4.1.2、生成随机的大小写混合的密码

import random
s = list(range(65, 91)) + list(range(97, 123))
print(s)
password = ''
for i in range(9):
    password += chr(random.choice(s))
print(password)
方法一:
import random
import string
s = string.ascii_letters
password = ''
for i in range(9):
    password += random.choice(s)
print(password)
方法二:string
import random
password = ''
for i in range(4):
    password += chr(random.randint(65, 90))

for i in range(5):
    password += chr(random.randint(97, 122))

password = list(password)
print(password)
random.shuffle(password)
print(password)
result = ''.join(password)
print(result)
方法三:一个复杂的方法

 

5、dir--查看某个对象里面有什么方法

 

 

6、help--查看某一个方法具体的使用信息

 

 

posted @ 2020-05-28 19:20  梦风灵舞  阅读(161)  评论(0编辑  收藏  举报